Python:For 循环遍历列表理解

标签 python for-loop list-comprehension

有没有更短的写法

for x in [x for x in X if a(x)]:
    <Do something complicated with x>

不幸的是,以下方法不起作用:
for x in X if a(x):
    <Do something complicated with x>

当然,我可以通过
for x in X:
    if a(x):
        <Do something complicated with x>

但这会引入额外的缩进级别

最佳答案

  • [b(x) for x in X if a(x)]是最简单的,但会创建一个不必要的列表。
  • map(b, (x for x in X if a(x)))将使用生成器,因此不会创建不需要的列表。
  • 关于Python:For 循环遍历列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42746844/

    相关文章:

    python - 有没有办法在返回声明之后做更多的工作?

    c# - 比较两个列表中的项目并用 LINQ 替换 foreach 循环

    python - 笨拙的理解清理

    list - Haskell: "list comprehension"是否使用急切求值?

    python - 在列表理解中使用 'if'

    python - 从列表字典创建并连接数据框

    python - 使用 python 中的第一次出现进行分组排序?

    python - 使用 psycopg2 和 postgresql 构建动态 SQL 查询

    c++ - 如何避免在同一行打印?

    c - 二维数组的无限 for 循环