You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python字典的keys()返回对象会随字典自动更新?

为什么Python中字典的keys()赋值给变量后会自动更新?

先看你给出的示例代码:

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = car.keys()

print(x) 

# 现在尝试更新字典
car["color"] = "white"

# 未重新用car.keys()方法赋值x
print(x) 

核心原因

Python里字典的keys()方法返回的不是静态的列表,而是一个动态的dict_keys视图对象——它和原字典是绑定的,不会单独存储键的副本,每次你访问这个对象时,它都会实时去原字典里读取最新的键集合。

也就是说,x = car.keys()并没有把当时的键复制一份给x,而是给x装了个"实时查看窗口",原字典变了,窗口里看到的内容自然也跟着变。

怎么得到固定不变的键集合

如果想让x保存当时的键,不受后续字典更新影响,把dict_keys转换成列表就行:

car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

x = list(car.keys())  # 转换成独立列表
print(x) 

car["color"] = "white"
print(x)  # 输出仍为['brand', 'model', 'year'],不会随字典更新

内容的提问来源于stack exchange,提问作者Md. Al Baki Akon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:53:12