如何从列表中删除不需要的号码?

时间:2018-11-01 17:17:41

标签: python list

我将下面的代码编写为从列表中删除大于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]

1 个答案:

答案 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]