我不确定这是错误还是功能。我有一本要用空列表初始化的字典。
让我们说
keys =['one','two','three']
sets = dict.fromkeys(keys,[])
我观察到的是,如果您将任何项目附加到任何列表中,所有列表都会被修改。
sets = dict.fromkeys(['one','two','three'],[])
sets['one'].append(1)
套
{'three': [1],'two': [1], 'one': [1]}
但是当我使用循环手动进行时,
for key in keys:
sets[key] = []
sets['one'].append(1)
套
{'three': [], 'two': [], 'one': [1]}
我认为第二种行为应该是默认行为。