我想从列表中删除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的多个倍数的索引以将其弹出? 我是初学者。
答案 0 :(得分:3)
如果在要迭代的列表上使用pop
,则正在修改该列表,并且会遇到类似问题,一种更好的方法可能是创建一个新列表,然后将奇数元素放入其中列表。
另外,您正在使用pop
来使用列表的值,而不是在错误的索引上使用它。 (https://docs.python.org/3/tutorial/datastructures.html#more-on-lists)
a = list(range(1, 11))
odd_list = []
for ele in a:
if ele % 2 != 0:
odd_list.append(ele)
print(odd_list)
#[1, 3, 5, 7, 9]