我有两个代码,其中字典是另一个代码的成员。在第一个代码中,字典'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]}}
此致 弗兰
答案 0 :(得分:1)
在第一个代码中,
a = {'one': [2, 2]}
将名称a
指向一个全新的字典,因此它不再指向存储在b
中的字典(未更改)。在第二,
a['one'] = [2, 2]
更新a
引用的现有字典,该字典也在b
中引用。这种差异与b
的创建无关,如
b = {}
b['member'] = a
和
b = {'member': a}
给出完全相同的结果。