lst = [[1+2j],[3+4j],[5-6j],[7-8j]] new_lst = [[z.real, z.imag] for z in lst] print(new_lst)为什么会输出三维数组
时间: 2023-03-30 12:04:54 浏览: 94
这是因为原始列表 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。
def f1(x,lst): #global a a=x+2 #lst.append(a) lst=lst+[a] a=2;lst=[3,4] f1(a,lst) print(a,lst)
运行这段代码,会输出结果:`2 [3, 4, 4]`。
当执行语句 `lst=lst+[a]` 时,会创建一个新的列表,将 lst 列表的元素和 a 的值组成一个新的列表,然后将这个新列表的引用赋值给 lst 变量。而语句 `lst.append(a)` 则是在原列表 lst 的末尾添加元素 a,不会创建新的列表。
因此,将语句 `lst=lst+[a]` 改为 `lst.append(a)`,程序输出结果会变为 `2 [3, 4, 4]`。