【发布时间】:2019-02-21 23:50:06
【问题描述】:
例如:
a = {};
b = [];
for i in range(20):
b.append(i)
a[i] = b
循环之后,a 的所有键都链接到同一个最终列表b [0,1,2,...,19]。
但是,我想要的是a[0] = [0]、a[1] = [0,1]、a[2] = [0,1,2]。
我不知道这里出了什么问题。
【问题讨论】:
-
a[i] = b你不断将 i 处的 dict 的值设置为 同一个列表b,使用b.copy()代替获取副本...跨度> -
@juanpa 回答。
-
你陷入了在 python 中复制列表的问题,实际上你分配给
a[i]的所有列表都具有相同的 id(尝试使用id(Object))所以更改b将更改以前的@987654332 @s ,尝试使用copy.copy方法将列表b复制到a[i]。 -
@AubreydaCunha 不,这是重复的。在python标签中每天都会多次弹出同样的问题
-
非常感谢你们!我以前没有注意到这一点。