列表推导式是利用其它列表创建新列表的一种方法,它的工作方式类似于for循环:
>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
列表由range(10)中的每个x的平方组成,如果只想打印出那些只能被3整除的平方数呢?那么可以使用模运算符--x%3,当数字可以被3整除时返回0:
>>> [x*x for x in range(10) if x%3==0]
[0, 9, 36, 81]
也可以增加更多for语句的部分:
>>> [(x,y) for x in range(3) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
>>> x=[‘waking‘,‘in‘,‘the‘,‘sun‘]
>>> y=[‘today‘,‘before‘,‘silence‘]
>>> [b+‘+‘+g for b in x for g in y if b[0]==g[0]]
[‘the+today‘, ‘sun+silence‘]