我刚开始学习Python,正在了解不可变对象和可变对象(在我的有限编程经验中,从未遇到过这种情况,比如MATLAB和C#)。
我想知道为什么,如果Python中的字典是可变的,那么编辑包含在第二个字典中的字典为什么不会改变第二个字典?
下面是一个示例,其中将一个字典(蝙蝠侠)添加到超级英雄名称的字典中。当后来更改蝙蝠侠时,它没有反映在超级英雄名称字典中。如果字典像字符串一样是不可变的,那么这对我来说是有意义的,但它们是可变的,所以为什么会发生这种情况?
我想知道为什么,如果Python中的字典是可变的,那么编辑包含在第二个字典中的字典为什么不会改变第二个字典?
下面是一个示例,其中将一个字典(蝙蝠侠)添加到超级英雄名称的字典中。当后来更改蝙蝠侠时,它没有反映在超级英雄名称字典中。如果字典像字符串一样是不可变的,那么这对我来说是有意义的,但它们是可变的,所以为什么会发生这种情况?
super_hero_names = {
'Superman' : 'Clark Kent',
'Spiderman' : 'Peter Parker'
}
batman = {'Batman' : 'Bruce'}
super_hero_names.update(batman)
batman['Batman'] = 'Bruce Wayne' # (edited)
print(super_hero_names)
# Output: {'Superman': 'Clark Kent', 'Spiderman': 'Peter Parker', 'Batman': 'Bruce'}
batman
没有包含在super_hero_names
中。 - juanpa.arrivillaga.update()
方法将新的 值 插入字典中,而不是插入 引用。 - JJJbatman
变量,而不是更改旧字典,但这并不会真正改变结果。 - JJJ