给出以下表达式:
matrix = [[1,2,3],[4,5,6],[7,8,9]]
创建矩阵,然后执行列表推导以创建平面列表。理解力是从左到右。
flat = [x for row in matrix for x in row]
随后,对于矩阵中的每一行,其值均被平方。如何理解这种理解?
squared = [[x**2 for x in row] for row in matrix]
答案 0 :(得分:0)
第一个理解等效于:
flat = []
for row in matrix:
for x in row:
flat.append(x)
第二个理解等同于:
squared = []
for row in matrix:
tmp = []
for x in row:
tmp.append(x**2)
squared.append(tmp)
(除了在诸如x
,row
,tmp
之类的封闭范围内创建其他变量之外)。