在Python 3中,如果我从dict.fromkeys
创建一个字典,那么它显示的行为不同于将字典分配给变量的行为。在两个字典上都使用extend
时,我可以看到这一点。
dict_a = dict.fromkeys(['x', 'y', 'z'], [])
dict_b = {'x': [], 'y': [], 'z': []}
dict_a == dict_b # returns True
type(dict_a) == type(dict_b) # returns True
def test_dicts(d):
d['z'].extend([1, 2, 3])
print(d)
test_dicts(dict_a)
返回
{'x': [1, 2, 3], 'y': [1, 2, 3], 'z': [1, 2, 3]}
test_dicts(dict_b)
返回
{'x': [], 'y': [], 'z': [1, 2, 3]}
这是预期的行为吗?如果是这样,为什么?