【发布时间】:2017-09-16 07:15:33
【问题描述】:
使用不同的方法创建列表的字典
d1 = {'foo':[],'bar':[]}
d2 = dict.fromkeys(['foo','bar'],[])
产生两个相同的字典。
print(d1==d2,d1,d2)
True {'foo': [], 'bar': []} {'foo': [], 'bar': []}
但是,将值附加到列表中
d1['foo'].append('a')
d2['foo'].append('a')
d1['foo'].append(2)
d2['foo'].append(2)
产生两个不同的字典。为什么 dict 的初始化方法会影响列表追加行为?
print(d1==d2,d1,d2)
False {'foo': ['a', 2], 'bar': []} {'foo': ['a', 2], 'bar': ['a', 2]}
在 fromkeys 之后,python 也将 list append 语句应用于所有其他键。
【问题讨论】:
标签: python list dictionary