Python的列表推导特别像for循环,它可以通过迭代的方法从其他列表中取出元素,构建新的列表。
代码语言:javascript复制>>> a=[x*x for x in range(5)]
>>> a
[0, 1, 4, 9, 16]
在列表推导式的遍历结构下还可以加入if语句,从而对取出的元素进行筛选。
代码语言:javascript复制>>> a=[x*x for x in range(5) if x%2==0]
>>> a
[0, 4, 16]
两组for循环创建的列表推导式:
代码语言:javascript复制>>> a=[("{}*{}={}".format(x,y,x*y)) for x in range(1,10) for y in range(1,10) if x>=y]
>>> a
['1*1=1', '2*1=2', '2*2=4', '3*1=3', '3*2=6', '3*3=9', '4*1=4', '4*2=8', '4*3=12', '4*4=16', '5*1=5', '5*2=10', '5*3=15', '5*4=20', '5*5=25', '6*1=6', '6*2=12', '6*3=18', '6*4=24', '6*5=30', '6*6=36', '7*1=7', '7*2=14', '7*3=21', '7*4=28', '7*5=35', '7*6=42', '7*7=49', '8*1=8', '8*2=16', '8*3=24', '8*4=32', '8*5=40', '8*6=48', '8*7=56', '8*8=64', '9*1=9', '9*2=18', '9*3=27', '9*4=36', '9*5=45', '9*6=54', '9*7=63', '9*8=72', '9*9=81']
如上,通过两个for加入一个if,实现了九九乘法表的打印。其中还用到字符串格式的一些知识。