Python中List Comprehension的一个小例子,以及其与for loop的比较。
我们首先用List Comprehension生成一个笛卡儿积。
colors = ['noir', 'blanc']
sizes = ['S', 'M', 'L']
tshirts = [(color, size) for color in colors
for size in sizes]
print(tshirts)
我们再用for循环来做同样的事情。
...
tshirts = []
for color in colors:
for size in sizes:
tshirts.append((color, size))
Listcomp的功能比较专一:生成新的list。相比之下,for循环的用处自然要广得多。但是前者更加的pythonic,所以对于pythonistas,掌握其用法也是很有意义的。
Luciano Ramalho, Fluent Python