|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
救命
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flatten = [col for row in matrix for col in row]
我知道应该是先算第一个for in
for row in matrix:
然后 for col in row:
最后赋值给col成一行
但我就是想不明白是怎么遍历的
for col in row:是列中的行?总觉得照这个式子,先遍历第一列也就是0列,0列然后第一行第二行,最后结果是147258369
这段代码的含义是将一个二维数组(matrix)压缩成一维数组(flatten),使得数组中的元素按照行的顺序排列,即先将矩阵的第一行的元素加入到结果中,然后是第二行,以此类推,最终得到的是一个长度为9的一维数组。
具体地,这一行代码使用了嵌套的列表推导式。列表推导式是一种简洁的构建列表的方法,可以快速地生成一个列表,而嵌套的列表推导式则可以用来构建多维列表。
在这个嵌套的列表推导式中,第一个for循环是对matrix中的每一行进行遍历,即将每一行提取出来作为row。接下来的for循环是对row中的每一个元素进行遍历,即将row中的每个元素提取出来作为col。最终,将每个col添加到结果列表中。
换句话说,这一行代码等价于下面的代码:
- flatten = []
- for row in matrix:
- for col in row:
- flatten.append(col)
复制代码
对于矩阵 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],这个代码的执行顺序是从左到右,从上到下遍历矩阵中的元素。因此,得到的结果是 [1, 2, 3, 4, 5, 6, 7, 8, 9]。
|
|