有没有人能给我讲一下为什么这个的结果是[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]],好乱啊
```python
new_lst=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
print([[row[i] for row in new_lst] for i in range(4)])
有没有人能给我讲一下为什么这个的结果是[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]],好乱啊
```python
new_lst=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
print([[row[i] for row in new_lst] for i in range(4)])
new_lst 是一个列表,其中包含三个子列表,每个子列表包含四个数字。
代码使用了两个列表推导式来执行以下操作:
首先,对于给定的范围 range(4),它会生成一个列表 [0, 1, 2, 3]。然后,对于每个索引 i,它会在第二个列表推导式中生成一个新列表,其中包含所有子列表中第 i 个元素的值。因此,最终生成的列表包含四个子列表,分别对应于 new_lst 中每个子列表的第一个、第二个、第三个和第四个元素。
例如,对于索引 0,它会在第二个列表推导式中生成一个新列表,其中包含 new_lst 中每个子列表的第一个元素,即 [1, 5, 9]。
所以,最终输出的结果为:
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]