带有变量前缀的 Python for-in 循环
在 Python 中,可能会遇到如下代码片段:
foo = [x for x in bar if x.occupants > 1]
这段代码片段提出了一个问题:它是什么意思以及它是如何实现的工作吗?
理解列表理解
所讨论的语法称为列表理解。列表理解是一种基于现有列表生成新列表的简洁方法,通常通过过滤或转换其元素来实现。
列表理解的语法结构
A列表理解遵循以下一般语法结构:
[expression for item in iterable if condition]
解释给定示例
在给定的示例中,涉及以下元素:
工作原理
列表理解迭代列表栏中的每个元素 x。对于每个元素 x,它检查条件 x.ocupants > 是否成立。 1 为真。如果条件为 True,则计算表达式 x 并将其包含在正在构造的新列表中。
与 For-in 循环比较
列表理解是等效的到以下传统的 for-in 循环:
foo = [] for x in bar: if x.occupants > 1: foo.append(x)
但是,列表理解更加简洁和可读。
理解语法的另一种方法
或者,列表理解可以被认为是两个内置函数的快捷方式:
在给定的示例中,列表推导式相当于:
foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))
以上是Python 带有变量前缀的列表理解是如何工作的?的详细内容。更多信息请关注PHP中文网其他相关文章!