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

Python中如何仅修改字典内指定键对应列表的单个元素

问题原因

dict.fromkeys() 方法在传入可变类型作为默认值时,不会为每个键单独创建新的可变对象,而是让所有键共享同一个对象的引用。你代码中所有键对应的[0,0]列表本质上是同一个列表对象,修改任意一个键对应的列表元素,所有键的取值都会同步变化。

解决方法

方式1:使用字典推导式初始化字典

字典推导式会为每个键单独创建独立的列表对象,不存在共享引用的问题:

my_dict = {k: [0, 0] for k in range(0, 24, 2)}
my_test_key = 2
my_dict[my_test_key][0] += 1
print(my_dict)

运行上述代码即可得到你期望的结果,仅键2对应列表的第0位会执行增量操作。

方式2:使用collections.defaultdict实现

如果后续需要动态向字典中添加新键,也可以通过defaultdict实现自动初始化独立的默认列表:

from collections import defaultdict

my_dict = defaultdict(lambda: [0, 0])
# 预初始化所有需要的键
for k in range(0, 24, 2):
    _ = my_dict[k]

my_test_key = 2
my_dict[my_test_key][0] += 1
print(dict(my_dict))

内容的提问来源于stack exchange,提问作者Borzanagan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:36:03