一个正常的python循环如下:
for i in range(10):
print(i)
结果如下:
0 1 2 3 4 5 6 7 8 9
如果需要打印出序号,则要用到enumerate
a=['a',3,22,'g']
for index,num in enumerate(a):
print(index,num)
结果如下:
0 a 1 3 2 22 3 g
下面是一个美丽的for循环代码:
a=[{'name': 'a'}, {'name': 'b'}, {'name': 'c'}]
b=[x.get('name') for x in a]
解释一下:
b里面,x是从a中迭代出来的每一个元素,然后x.get('name')对这个元素进行操作,得到的结果放到list里面,最后循环结束,生成一个列表,则得到的b为 ['a', 'b', 'c']
由此引申出一个乘法口诀表:
print('\n'.join([ ' '.join([ "%d*%d=%2s" %(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
用到了上面的特性,结果如下:
1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 1*4= 4 2*4= 8 3*4=12 4*4=16 1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25 1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
非常漂亮,不是吗?