我做到了
a = range(17,30)
print(a)
for i, item in enumerate(a):
if (item%3)==0:
print("del {0}:{1}".format(i, item))
del a[i]
print(a)然后我得到了,
[17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
del 1:18
del 3:21
del 5:24
del 7:27答案是正确的,但我想删除项目的索引应该是1,4,7,10。
发布于 2014-03-15 17:08:25
所发生的情况是,您正在删除列表a的项,因此索引会发生变化。如果在循环中打印列表a,您可以很容易地看到这一点:
a = range(17, 30)
for i, item in enumerate(a):
if (item % 3) == 0:
print(a)
print("del {0}:{1}".format(i, item))
del a[i]输出:
0 1 2 3 4 5 6 7 8 9 10 11 12
-----------------------------------------------------
[17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
del 1:18
[17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
del 3:21
[17, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29]
del 5:24
[17, 19, 20, 22, 23, 25, 26, 27, 28, 29]
del 7:27https://stackoverflow.com/questions/22426925
复制相似问题