【发布时间】:2019-03-25 01:42:54
【问题描述】:
我找到了一种制作here 的循环列表的好方法。并且代码按照我的需要运行。
x=["alpha","betta", "gamma"]
y=[[] for _ in range(len(x))]
y[1]=3
按预期给我[[], 3, []]。但是当我尝试升级代码时:
z=[10,20,30]
x=["alpha","betta"]
y=[[] for _ in range(len(z))]
y=[y for _ in range(len(x))]
y[1][1]=4
会给我正确的形状,但我会得到[[[], 4, []], [[], 4, []]]
我显然陷入了链接中提到的陷阱,而不是[[[], [], []], [[], 4, []]],但我不明白为什么以及如何避免这个问题
【问题讨论】:
-
拼写为“beta”;)
-
现在我不确定它是否真的是重复的,因为 OP 正确地创建了第一个 2D 事物。错误只是一遍又一遍地传递相同的引用。重新打开,因为 OP 不明白为什么,即使做了一些研究