首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历列表并删除满足特定条件的列表- Python

循环遍历列表并删除满足特定条件的列表- Python
EN

Stack Overflow用户
提问于 2015-12-18 16:20:25
回答 1查看 490关注 0票数 0

我正在尝试一种简单的列表过滤方法,即删除列表中满足条件的元素。

代码语言:javascript
复制
 >>> a = ["a" , "e" , "i" , "o" , "u"]
 >>> for elem in a:
 ...     a.remove(elem)

在这种情况下,我不是在过滤,而是在尝试删除所有元素。但是,如果我使用print a命令,我看到的是:

代码语言:javascript
复制
>>> print a
["e" , "o"]

用这种方法不可能删除数组中所有元素。Python删除元素,重新分配索引,然后递增它。因此,Python在每次迭代中都跳过一个元素。如果它在最简单的情况下不起作用,我如何正确地实现列表过滤?

代码语言:javascript
复制
>>> numbers = [100 , 102 , 103 , 105 , 107, 108, 110, 120]
>>> for elem in numbers:
...     if elem % 2 == 0:
...         numbers.remove(elem)
... 
>>> numbers
[102, 103, 105, 107, 110]

在这种情况下,更自然(在我看来)的列表过滤实现不起作用……你如何控制这种操作??

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-12-18 16:22:25

只需使用内置函数filter()即可

代码语言:javascript
复制
>>> filter(lambda x: x % 2, numbers)
[103, 105, 107]
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34351235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档