gpt4 book ai didi

python - 在Python中创建多维列表

转载 作者:行者123 更新时间:2023-11-30 22:50:23 26 4
gpt4 key购买 nike

我正在尝试创建一个多维列表。输入为:

L1 = [2,3,4]
L2 = [5,6,7]

输出为 x ** y,其中 x 来自 L1,x 来自 L2

L3 = [[32,64,128],[243,729,2187],[1024,4096,16384]]

我的代码如下:

L1 = [2,3,4]
L2 = [5,6,7]

L3 = [[None] * len(L1)] * len(L2)
c=0
for x in L1:
d=0
for y in L2:
L3[c][d] = x ** y
d = d+1
c = c+1

print L3

这里的输出是:

[[1024,4096,16384],[1024,4096,16384],[1024,4096,16384]]

在调试时我了解到:

在对“L3[0][0]”赋值时,同时对L3[0][0]、L3[1][0]、L3[2][0]进行赋值。它应该分配九次。在每次分配期间,它分配到 3 个位置。我不明白它是如何工作的。

我尝试打印

id(L3[0])
id(L3[1])
id(L3[2])

并且所有都打印相同的内存位置地址。

是不是因为内存地址相同,所以一次传到3个地方(x**y的值同时传到L3[0][0],L3[1][0],L3 [2][0]?

有人可以帮我解决这个问题吗?

提前致谢,建议零售价

最佳答案

也许这就是你想要的?

[[x**y for y in L2] for x in L1]

[[32, 64, 128], [243, 729, 2187], [1024, 4096, 16384]]

关于python - 在Python中创建多维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39376433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com