考虑以下代码:
lst = [['a']*5]*4
lst[1][1] = '*'
这段代码:
lst= [['a'] * 5 for i in range(4)]
lst[1][1] = '*'
是什么让他们与众不同?
由于
答案 0 :(得分:2)
这些是相同的对象:
>>> lst = [['a']*2]*2
>>> map(id, lst)
[60543624, 60543624]
>>> lst[0] is lst[1]
True
答案 1 :(得分:1)
因为,您不会创建其中包含5个a
的四个列表。相反,您要创建4个列表,这些列表指向同一个列表,其中包含5个a
个。所以,你改变一个,效果在所有其他人中也可以看到。