调用list.append()为何会自动更新字典值?
为什么字典自动更新了?
这是因为列表是可变对象,你代码里的操作本质是直接修改了字典中存储的列表本身:
- 当执行
list_tmp = fruits.get("green")时,list_tmp并没有生成新列表,而是直接指向原字典fruits里"green"对应的那个列表对象的引用。 - 后续调用
list_tmp.append(name),是直接对这个共享的列表对象做修改,所以原字典里的列表自然会跟着变化,完全不需要调用dict.update()。
如果不想修改原字典里的列表,可以创建列表的副本,示例代码如下:
fruits = { "green" : ["kiwi"] } name = "avocado" list_tmp = fruits.get("green").copy() # 创建列表副本 list_tmp.append(name) print(fruits) # 输出: {'green': ['kiwi']}
内容的提问来源于stack exchange,提问作者askren
相关产品推荐
相关产品推荐

