# -*- coding:utf-8 -*-
list = [11,33,44,55,66,77,88]
# 使用for 删除某个元素
for i in list:
if i == 33 or i == 44:
list.remove(i)
print(list)
当我们在for
循环里删除多个值的时候,发现只删除了第一个.后面的值没有删除成功. 分析过后发现 当for
循环到if i == 33 or i == 44
当i
的值为33
时满足条件,这时候就会去删除 list
列表里的33
, 删除过后后面的值就会把前面的空位填起来.这时候44
的key
就发生了改变.44
的key
位置就变成了33
以前key
的位置,这样44
就会删除不到了.
# -*- coding:utf-8 -*-
list = [11,33,44,55,66,77,88]
# 使用for 删除某个元素
for i in list:
if i == 33 or i == 44 or i== 55:
list.remove(i)
print(list)
# -*- coding:utf-8 -*-
list = [11,33,44,55,66,77,88]
# 使用for 删除某个元素
for i in list:
if i == 33 or i == 44 or i== 55 or i == 66:
list.remove(i)
print(list)
python for
删除值请不要这样使用.坑很深.
# -*- coding:utf-8 -*-
list = [11,33,44,55,66,77,88]
# 使用for 删除某个元素
# 定义一个空列表
remove_list = []
for i in list:
if i == 33 or i == 44:
remove_list.append(i) # 把需要删除的值保存到空列表
for i in remove_list:
list.remove(i)
print(list)
定义一个空列表
变量用来保存需要删除的值,然后for
循环需要删除的值,这时候去remove
就不会出现漏删除的情况了.