Python 带有变量前缀的列表理解是如何工作的?

DDD
发布: 2024-11-22 02:33:13
原创
420 人浏览过

How Does Python's List Comprehension with a Variable Prefix Work?

带有变量前缀的 Python for-in 循环

在 Python 中,可能会遇到如下代码片段:

foo = [x for x in bar if x.occupants > 1]
登录后复制

这段代码片段提出了一个问题:它是什么意思以及它是如何实现的工作吗?

理解列表理解

所讨论的语法称为列表理解。列表理解是一种基于现有列表生成新列表的简洁方法,通常通过过滤或转换其元素来实现。

列表理解的语法结构

A列表理解遵循以下一般语法结构:

[expression for item in iterable if condition]
登录后复制

解释给定示例

在给定的示例中,涉及以下元素:

  • 表达式: x(这将成为新列表的元素)
  • Iterable: bar(要过滤的列表或变形)
  • 条件: x. 占用者 > 1(用于过滤栏)

工作原理

列表理解迭代列表栏中的每个元素 x。对于每个元素 x,它检查条件 x.ocupants > 是否成立。 1 为真。如果条件为 True,则计算表达式 x 并将其包含在正在构造的新列表中。

与 For-in 循环比较

列表理解是等效的到以下传统的 for-in 循环:

foo = []
for x in bar:
    if x.occupants > 1:
        foo.append(x)
登录后复制

但是,列表理解更加简洁和可读。

理解语法的另一种方法

或者,列表理解可以被认为是两个内置函数的快捷方式:

  • map(function, iterable) 将给定的函数应用于 iterable 中的每个元素,返回一个列表results.
  • filter(condition, iterable) 根据给定条件过滤可迭代对象,返回满足条件的元素列表。

在给定的示例中,列表推导式相当于:

foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))
登录后复制

以上是Python 带有变量前缀的列表理解是如何工作的?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板