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

如何在Python中向字典动态添加不存在的键及对应数组值

报错原因

你收到KeyError: 'colors'的核心原因是当前cardict字典中尚未初始化colors键,无法直接对不存在的键调用列表的append方法。


修复方案

方案1:预先判断键是否存在,不存在则初始化

适合仅需处理少量动态键的场景,逻辑直观易懂:

color1 = "red"
cardict = {
  "brand": "Ford",
  "electric": False,
  "year": 2201
}

if "colors" not in cardict:
    cardict["colors"] = []
cardict["colors"].append(color1)

print(cardict)

方案2:使用字典内置setdefault方法(单键处理首选)

setdefault会自动判断键的存在状态:键不存在时设置指定的默认值,键存在时直接返回对应原值,一行即可完成操作:

color1 = "red"
cardict = {
  "brand": "Ford",
  "electric": False,
  "year": 2201
}

cardict.setdefault("colors", []).append(color1)

print(cardict)

方案3:使用collections.defaultdict(多列表值场景首选)

如果字典内存在大量需要动态追加的列表类型值,可以在初始化时指定默认值类型,后续无需额外判断即可直接操作:

from collections import defaultdict

color1 = "red"
# 初始化时指定所有未知键的默认值为空列表
cardict = defaultdict(list, {
  "brand": "Ford",
  "electric": False,
  "year": 2201
})

cardict["colors"].append(color1)

# 按需可以转为普通字典输出
print(dict(cardict))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 01:30:04