推导式特点:
语言检测,速度快
例1:取出名字长度大于三的人员
for循环:
>>> for name in names:
... if len(name)>3:
... print(name)
...
dddd
eeee
jjjj
推导式:
>>> [name.upper() for name in names if len(name)>3] #取出的值还可以之间引用方法
['DDDD', 'EEEE', 'JJJJ']
>>> [name for name in names if len(name)>3]
['dddd', 'eeee', 'jjjj']
例2:求x、y,其中x是0-5之间的偶数,而y是0-5之间的奇数,共同组成一个元组列表
>>> [(x,y) for x in list(range(6)) if x%2==0 for y in list(range(6)) if y%2==1]
[(0, 1), (0, 3), (0, 5), (2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)]
例3:求M中3、6、9组成的列表
>>> M = [[1,2,3],[4,5,6],[7,8,9]]
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> [row[2] for row in M ]
[3, 6, 9]
例4:求M中1、5、9组成的列表
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> [M[i][i] for i in range(len(M))]
[1, 5, 9]
解析:
i = 0,M[0][0] = [1,2,3][0] = 1
i = 1,M[1][1] = [4,5,6][1] = 5
i = 2,M[2][2] = [7,8,9][2] = 9
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)