rez = [[m[j][i] for j in range(len(m))] for i in range(len(m[0]))]
当我们在for loop中使用它时,我无法理解它将如何打印转置。有人可以彻底解释其工作原理吗?
答案 0 :(得分:1)
@Parakh,您未指定m是什么,所以我将其设为2d数组:
m = [[6, 2],
[3, 4]]
rez = [[m[j][i] for j in range(len(m))] for i in range(len(m[0]))]
print(rez)
这与:
```
m = [[6, 2],
[3, 4]]
rez = []
for i in range(len(m[0])):
temp = []
for j in range(len(m)):
temp.append(m[j][i])
rez.append(temp)
print(rez)
```
这将产生第0列第0行(6)和第0列第1行(3)作为第一个新列表, 然后是第1列第0行(2)和第1列第1行(4)作为第二个新列表。
j是行索引,i是列索引。
i[0], j[0] = 6
i[0], j[1] = 3
i[1], j[0] = 2
i[1], j[1] = 4