删除列表中的偶数
num = [2,3,4,5,6,7]
for i in num:
if i % 2 ==0:
num.remove(i)
print(num)
num1 = [2,4,5,6,7]
for i in num1:
if i % 2 ==0:
num1.remove(i)
print(num1)
结果:
[3, 5, 7]
[4, 5, 7]
原因:
第一个列表num=[2,3,4,5,6,7]中,删除第一偶数"2"后,列表中后边的元素向前移动一位 num=[3,4,5,6,7],接着 i 取值 是 4,而 3 被跳过了,但因为 3 是奇数,对结果没造成影响。后边 4 被删除后,5、6、7 向前移,i 取值 6, 5 被跳过。。。
第一个列表num=[2,4,5,6,7]中,删除第一偶数"2"后,列表中后边的元素向前移动一位 num=[3,4,5,6,7],接着 i 取值 是 5,而 4 被跳过了,造成结果错误
处理办法:
for i in num[:]:
num = [2,3,4,5,6,7]
for i in num[:]:
if i % 2 ==0:
num.remove(i)
print(num)
num1 = [2,4,5,6,7]
for i in num1[:]:
if i % 2 ==0: