python - python 有这个简单任务的简写吗?

标签 python

我刚刚开始学习听说已久的python语言。我以前一直在用 C 工作。我发现 python,作为一种现代脚本语言,在各种任务上都非常简洁。

所以我想知道,如果我有一个列表 foo = [1, 2, 3, 4, 5],我想从中挑选出所有奇数到 。在 C 中,我可能会使用一个循环并检查 foo 中的每个数字并将所需的元素复制到 bar 中。你们用这种“python 风格”做什么?

最佳答案

bar = [x for x in foo if x % 2 == 1]

这个表格叫做"list comprehension" .在其基本形式中,它有 4 个部分:

  1. 您想在输出列表中包含的内容。可以是涉及第二部分(下文)中定义的变量的任何表达式。在这种情况下,元素 x,未修改;

  2. 一个变量或表达式,表示输入列表的一个元素。在 for 关键字之后,列表的每个元素都将绑定(bind)到该变量(如果您的列表包含复杂的对象,您可以使用 destructuring assignment 来仅引用它的特定部分)。在这种情况下,列表的每个项目都绑定(bind)到 x;

  3. 输入列表。在 in 关键字之后,您将从中获取元素的列表(或其他可迭代对象)。在这种情况下,foo;

  4. 元素必须满足才能包含在结果中的条件(可选)。如果包含,则添加关键字 if,后跟表达式以确定该元素是否将包含在输出列表中。在这种情况下,如果数字为奇数,则为奇数。

关于python - python 有这个简单任务的简写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247032/

相关文章:

python - zeromq:如何防止无限等待?

python - 如何迭代defaultdict?

python - AttributeError ("module ' apache_beam.io.gcp.internal.clients.storage'没有属性 'StorageV1'“)

python - 使用 Python 通过 TCP 传输文件

python - Python 中的嵌套列表排序

python - Pandas DataFrame 将列表存储为字符串 : How to convert back to list

python 重新: r'\b\$\d+\b' won't match 'aug 12, 2010 abc $123'

python向内置类型添加新方法

python - 在 df.loc 过滤条件中填充缺失数据?

python - 在一个 NumPy 数组中存储不同的数据类型?