number3=[30, 32, 34, 36, 50, 52, 54, 90, 300, 302, 303, 304, 305, 306, 320, 322, 323, 324, 325, 340, 342, 343, 360, 500, 502, 503, 504, 505, 520, 522, 523, 540, 900]
for i in (number3):
m=str(i)
n=len(m)
if n == 2:
number3.remove(i)
else:
pass
我不知道为什么,但解释器只处理第一个数字。我希望它遍历整个列表并删除有2位数的数字
答案 0 :(得分:3)
在迭代列表时,您不应该尝试修改列表。使用list comprehension来执行此操作要容易得多:
number3 = [n for n in number3 if len(str(n)) != 2]