我正在创建一个字典,其中每个键下的值是一个列表。我需要迭代地将值添加到每个键下的列表中。因此,我使用了extend()函数将值添加到循环中的列表中。但是发生了意外的行为。如果我以以下方式创建字典,则在一个键下扩展列表会导致在所有键下扩展列表:
dummy_list = ['A', 'B', 'C']
dummy_dict = dict(zip(dummy_list, [[]] * len(dummy_list)))
dummy_list
['A','B',C']
dummy_dict
{'A':[],'B':[],'C':[]}
dummy_dict['A'].extend(['a','b','c'])
dummy_dict
{'A':['a','b','c'],'B':['a','b','c'],'C':['a',' b','c']}
另一方面,如果我通过显式列出列表来创建字典,而不是使用乘法,则该行为是预期的:
dummy_list = ['A', 'B', 'C']
dummy_dict = dict(zip(dummy_list, [[], [], []]))
dummy_list
['A','B',C']
dummy_dict
{'A':[],'B':[],'C':[]}
dummy_dict['A'].extend(['a','b','c'])
dummy_dict
{'A':['a','b','c'],'B':[],'C':[]}
有人可以帮助我理解为什么吗?谢谢!