Python:处理两个列表的“ Pythonic”方式是什么?

马克·佩蒂特

假设我在Python中有这段代码。如您所知,我是Perl程序员。

# Both list1 and list2 are a list of strings
for x in list1:
  for y in list2:
    if y in x:
      return True
return False

有什么更Python化的方式来处理此问题?我认为列表理解可以很好地解决这个问题,但是我无法理解“处理两个单独的列表”这一部分。

阿巴内特

要将两个嵌套循环转换为嵌套理解,只需执行以下操作:

[<expression> for x in list1 for y in list2]

如果您从未考虑过列表推导的工作原理,那么本教程将对它进行解释

列表推导由包含表达式的方括号组成,后跟一个for子句,然后是零个或多个for或if子句。结果将是一个新列表,该列表是通过在其后的for和if子句的上下文中评估表达式而得出的。

换句话说,理解中从左到右的子句与从上/外到下/内的语句匹配,仅此而已。

这篇博客文章试图以另一种方式提出相同的想法,以防万一您还没有想到。


但是在这里,您没有表达式,有声明。

但是,您在其中有一个表达式,y in x语句一部分,并且如果要对任何值都设置为真,则要返回True any所以:

return any([y in x for x in list1 for y in list2])

实际上,您不想在此处构建列表,而只是遍历值,因此请放方括号以使其成为生成器表达式:

return any(y in x for x in list1 for y in list2)

对于仅迭代多个可迭代对象的笛卡尔乘积的简单情况,您可能需要使用itertools.product在这种情况下,我认为这不会使事情变得更简单或更具可读性,但是如果您有四个列表而不是两个列表(或者它们的数量是不可预测的),那么情况可能会不同:

return any(y in x for x, y in product(list1, list2))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:处理两个列表的“ Pythonic”方式是什么?

来自分类Dev

支持两个数据库后端并使我的代码保持干燥的最pythonic方式/技巧是什么?

来自分类Dev

支持两个数据库后端并使我的代码保持干燥的最pythonic方式/技巧是什么?

来自分类Dev

两个列表的点积之和的 Pythonic 方式

来自分类Dev

在两个列表中应用运算符的C#惯用方式是什么?

来自分类Dev

以交错方式组合两个Python列表

来自分类Dev

Python以交替方式合并两个长度不等的列表

来自分类Dev

在Pandas数据框中迭代两个连续行的Pythonic方法是什么?

来自分类Dev

处理ElasticSearch的最Python方式是什么?

来自分类Dev

迭代两个列表并按位置计算的python方法是什么?

来自分类Dev

python中两个嵌套的for循环的结果,保存列表的正确位置是什么?

来自分类Dev

在两个先前已知的字符串之间处理文件的 Pythonic 方式

来自分类Dev

Pythonic方式按属性比较两个无序列表

来自分类Dev

映射字典列表的最Pythonic方法是什么?

来自分类Dev

PYTHON:如何以最pythonic的方式合并列表中的两个字典

来自分类Dev

AngularJS处理CRUD资源的“方式”是什么

来自分类Dev

Java处理闭包的方式是什么?

来自分类Dev

Rails处理多态关联的方式是什么?

来自分类Dev

处理异常的最佳方式是什么?

来自分类Dev

在for循环中处理两个语句的Pythonic方法?

来自分类Dev

从另一个列表中存在的两个列表中查找2个项目的Python方式

来自分类Dev

收集列表以查找两个列表python有什么区别

来自分类Dev

传递列表的预期方式是什么?

来自分类Dev

在两个“终结器”选项卡之间移动的快捷方式是什么?

来自分类Dev

合并两个重叠列表的Pythonic方法,保留顺序

来自分类Dev

从实例列表中制作一个简单列表的pythonic惯用法是什么?

来自分类Dev

处理标准输入的最Python方式是什么?

来自分类Dev

每行之后有更多的pythonic方式遍历两个列表切换方向吗?

来自分类Dev

根据条件将列表分为两个列表的最佳方法是什么

Related 相关文章

  1. 1

    Python:处理两个列表的“ Pythonic”方式是什么?

  2. 2

    支持两个数据库后端并使我的代码保持干燥的最pythonic方式/技巧是什么?

  3. 3

    支持两个数据库后端并使我的代码保持干燥的最pythonic方式/技巧是什么?

  4. 4

    两个列表的点积之和的 Pythonic 方式

  5. 5

    在两个列表中应用运算符的C#惯用方式是什么?

  6. 6

    以交错方式组合两个Python列表

  7. 7

    Python以交替方式合并两个长度不等的列表

  8. 8

    在Pandas数据框中迭代两个连续行的Pythonic方法是什么?

  9. 9

    处理ElasticSearch的最Python方式是什么?

  10. 10

    迭代两个列表并按位置计算的python方法是什么?

  11. 11

    python中两个嵌套的for循环的结果,保存列表的正确位置是什么?

  12. 12

    在两个先前已知的字符串之间处理文件的 Pythonic 方式

  13. 13

    Pythonic方式按属性比较两个无序列表

  14. 14

    映射字典列表的最Pythonic方法是什么?

  15. 15

    PYTHON:如何以最pythonic的方式合并列表中的两个字典

  16. 16

    AngularJS处理CRUD资源的“方式”是什么

  17. 17

    Java处理闭包的方式是什么?

  18. 18

    Rails处理多态关联的方式是什么?

  19. 19

    处理异常的最佳方式是什么?

  20. 20

    在for循环中处理两个语句的Pythonic方法?

  21. 21

    从另一个列表中存在的两个列表中查找2个项目的Python方式

  22. 22

    收集列表以查找两个列表python有什么区别

  23. 23

    传递列表的预期方式是什么?

  24. 24

    在两个“终结器”选项卡之间移动的快捷方式是什么?

  25. 25

    合并两个重叠列表的Pythonic方法,保留顺序

  26. 26

    从实例列表中制作一个简单列表的pythonic惯用法是什么?

  27. 27

    处理标准输入的最Python方式是什么?

  28. 28

    每行之后有更多的pythonic方式遍历两个列表切换方向吗?

  29. 29

    根据条件将列表分为两个列表的最佳方法是什么

热门标签

归档