列表推导式中表达式的执行顺

给定以下表达式:

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]


慕标5832272
浏览 134回答 1
1回答

千巷猫影

第一个理解相当于: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。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python