您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

通过谓词过滤Python列表

通过谓词过滤Python列表

您可以使用filter方法

>>> lst = [1, 2, 3, 4, 5]
>>> filter(lambda x: x % 2 == 0, lst)
[2, 4]

或列表理解:

>>> lst = [1, 2, 3, 4, 5]
>>> [x for x in lst if x %2 == 0]
[2, 4]

要查找单个元素,可以尝试:

>>> next(x for x in lst if x % 2 == 0)
2

尽管如果没有匹配项将引发异常,因此您可能希望将其包装在try / catch中。方括号()使之成为生成器表达式,而不是列表理解。

就我个人而言,尽管我只是使用常规的过滤器/理解并采用第一个元素(如果有)。

如果什么也没找到,就会引发异常

filter(lambda x: x % 2 == 0, lst)[0]
[x for x in lst if x %2 == 0][0]

这些返回空列表

filter(lambda x: x % 2 == 0, lst)[:1]
[x for x in lst if x %2 == 0][:1]
python 2022/1/1 18:50:02 有345人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶