函数的常用操作是将函数应用给一个列表的所有项,并使结果创建一个新的列表, 例如:
nums = [1, 2, 3, 4, 5]
squares = []
for n in nums:
squares.apend(n*n)
这种操作很常见,因此出现了叫做列表推导运算符,例如
nums = [1, 2, 3, 4, 5]
squares = [n*n for n in nums]
列表推导的一般语法为:
[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN]
这种语法大致等价于以下代码:
s = []
for item1 in iterable1:
if condition1:
for item2 in iterable2:
if condition2:
...
for itemN in iterableN:
if conditionN:
s.append(expression)
如果列表包含用于构造元组列表,则元组值必须放在圆括号中。例如:
[(x, y) for x in a
for y in b]
这是合法的,而
[x, y for x in a
for y in b]
这是不合法的