如何从列表中删除不满足条件的元素?

2024-04-26 06:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从列表中删除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的各种倍数的索引来弹出它们?? 我是个初学者。你知道吗


Tags: in列表forindexif错误rangeout
1条回答
网友
1楼 · 发布于 2024-04-26 06:31:54

如果您在正在迭代的列表上使用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]

相关问题 更多 >

    热门问题