在Python中引用字典

时间:2013-11-25 12:03:29

标签: python-2.7

我有两个代码,其中字典是另一个代码的成员。在第一个代码中,字典'a'在字典'b'中使用{}:

引用
a = {'one': [1, 1]}
b = {'member': a}
print b
a = {'one': [2, 2]}
print b

在第二个代码中,字典'a'在字典'b'中使用[]:

引用
a = {}
a['one'] = [1, 1]
b = {}
b['member'] = a
print b
a['one'] = [2, 2]
print b

任何人都可以向我解释为什么,第一个代码中的第二个打印b返回:

{'member': {'one': [1, 1]}}

而在第二个代码中,同一印刷品的结果是:

{'member': {'one': [2, 2]}}

此致 弗兰

1 个答案:

答案 0 :(得分:1)

在第一个代码中,

a = {'one': [2, 2]}

将名称a指向一个全新的字典,因此它不再指向存储在b中的字典(未更改)。在第二,

a['one'] = [2, 2]

更新a引用的现有字典,该字典也在b中引用。这种差异与b的创建无关,如

b = {}
b['member'] = a

b = {'member': a}

给出完全相同的结果。