【发布时间】:2019-09-03 10:33:10
【问题描述】:
我想从列表中删除 2 的倍数。我该怎么做?
a = list(range(1, 11))
print(a)
for ele in a:
if ele % 2 == 0:
a.pop(ele)
print(a)
条件前a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
条件之后,我期待a = [1, 3, 5, 7, 9]
但我收到此错误IndexError: pop index out of range
如何获取 2 的各种倍数的索引以将它们弹出? 我是初学者。
【问题讨论】:
-
不要修改你迭代的列表!
-
pop 的参数没有达到您的预期。见:docs.python.org/3/tutorial/datastructures.html
-
而不是删除创建包含您想要保留的元素的新列表。
-
正如@furas 所说,不要只是列出列表并删除元素以使其成为您想要的。从头开始制作您想要的列表(例如:
a = [x for x in range(1, 11) if x % 2 != 0]
标签: python python-3.x loops