删除列表中的项目(Python)[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我创建了一个1-10的列表。我想删除所有大于某个数字的数字,在这种情况下,请说4。我在下面编写了代码,但无法获得想要的结果。

number_range = list(range(1,11))
for i in number_range:
    if i > 4:
        number_range.remove(i)

我得到的结果

[1、2、3、4、6、8、10]

python
1个回答
0
投票

之所以发生这种情况,是因为您在循环浏览列表时正在修改列表。解决此问题的一种快速方法是改为遍历列表的副本:

number_range = list(range(1,11))
for i in number_range[:]:
    if i > 4:
        number_range.remove(i)

但是this duplicate question的答案中还有其他更有效的选择。

© www.soinside.com 2019 - 2024. All rights reserved.