我刚刚开始学习听说已久的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 个部分:
您想在输出列表中包含的内容。可以是涉及第二部分(下文)中定义的变量的任何表达式。在这种情况下,元素
x
,未修改;一个变量或表达式,表示输入列表的一个元素。在 for 关键字之后,列表的每个元素都将绑定(bind)到该变量(如果您的列表包含复杂的对象,您可以使用 destructuring assignment 来仅引用它的特定部分)。在这种情况下,列表的每个项目都绑定(bind)到
x
;输入列表。在 in 关键字之后,您将从中获取元素的列表(或其他可迭代对象)。在这种情况下,
foo
;元素必须满足才能包含在结果中的条件(可选)。如果包含,则添加关键字 if,后跟表达式以确定该元素是否将包含在输出列表中。在这种情况下,如果数字为奇数,则为奇数。
关于python - python 有这个简单任务的简写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247032/