Python 3字典显示与dict.fromkeys不同的行为

时间:2019-02-21 15:13:47

标签: python python-3.x dictionary

在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]}

这是预期的行为吗?如果是这样,为什么?

0 个答案:

没有答案