[ foo for bar, foo in arr ]
# ^ iterable providing elements
# ^ assignment of each element to name(s)
# ^ operation for each element
注意,中间赋值与赋值使用{{CD5>}的功率相同:
将为单个名称目标分配整个值 a = (1, 2)或for a in [(1, 2), (3, 4)]
将值的部分分配给多个名称目标 a, b = (1, 2)或for a, b in [(1, 2), (3, 4)]
这使得理解更方便,可以对元素进行解包并对每个部分进行单独操作,例如组合元素或丢弃一个元素
对每个元素的各个部分使用专有名称可以更清楚地了解发生了什么,以及如何更改结果:
>>> # code of the question, using proper names
>>> pairs = [(4, 'c'), (5, 'o'), (6, 'd')]
>>> [letter for number, letter in pairs]
['c', 'o', 'd']
>>> # desired result of the question
>>> [number for number, letter in pairs]
[4, 5, 6]
[.. for .. in ..]
语法表示一个comprehension expression,特别是一个用于创建列表的[
{注意,中间赋值与赋值使用{{CD5>}的功率相同:
a = (1, 2)
或for a in [(1, 2), (3, 4)]
a, b = (1, 2)
或for a, b in [(1, 2), (3, 4)]
这使得理解更方便,可以对元素进行解包并对每个部分进行单独操作,例如组合元素或丢弃一个元素
对每个元素的各个部分使用专有名称可以更清楚地了解发生了什么,以及如何更改结果:
Comprehensions, especially for lists, are a feature found in many programming languages.它们源自一些人可能熟悉的数学“集合生成器符号”。例如,数学表达式“arr中的数字集”
直接转化为一套理解:
您可以使用相同的方式提取第一个索引:
这种速记技术在Python中称为"list comprehension"。一般语法是
相关问题 更多 >
编程相关推荐