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)])
时间: 2023-11-30 22:56:28 浏览: 23
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]]
```
相关问题
lst = [[1+2j],[3+4j],[5-6j],[7-8j]] new_lst = [[z.real, z.imag] for z in lst] print(new_lst)为什么输出二维数组
输出二维数组是因为原始列表 lst 中每个元素都是一个复数,而复数由实部和虚部组成,因此在列表推导式中使用了 z.real 和 z.imag 分别获取每个元素的实部和虚部,最终得到一个二维数组 new_lst。
lst = [[1+2j],[3+4j],[5-6j],[7-8j]] new_lst = [[z.real, z.imag] for z in lst] print(new_lst)为什么会输出三维数组
这是因为原始列表 lst 中的每个元素都是一个复数,包含实部和虚部两个部分,而在列表推导式中,使用了 z.real 和 z.imag 分别提取了每个元素的实部和虚部,因此新列表 new_lst 中的每个元素都是一个包含两个数值的列表,即实部和虚部,因此输出的是一个三维数组。
阅读全文