我编写了下面的代码来从列表中删除大于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]
发布于 2018-11-02 01:19:59
它不会起作用,因为你正在从列表中删除项目,同时迭代相同的one....so。当你删除一个元素时,下一次迭代你将跳过一个元素。
解决方案: 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]https://stackoverflow.com/questions/53106182
复制相似问题