我将下面的代码编写为从列表中删除大于5的数字。 但是,尽管代码对我来说看起来不错,但它不起作用。我是python的新手,正努力使自己的基础知识正确。我决定使用remove,因为我要根据值进行检查
a = [1,5,4,6,3,8,9,5,9]
for i in a:
print (i)
if i<=5:
continue
a.remove(i)
print (a)
结果-[1, 5, 4, 3, 5, 9]
答案 0 :(得分:0)
它不起作用,因为要在迭代同一项目的同时从列表中删除项目。...因此,当删除一个元素时,下一次迭代将使它们跳一个。
解决方案: 1)使用2个数组; 2)使用while循环,并在删除元素时减小数组的len而不增加迭代次数
a = [1,5,4,6,3,8,9,5,9]
i=0
l=len(a)
while i<l:
if a[i]>5:
a.pop(i)
l-=1
else:
i+=1
print (a)
结果:
[1, 5, 4, 3, 5]