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

Python如何将字典追加到嵌套字典中(按首字母分类字典元素)

问题修正

你给出的预期结果存在Python语法错误:

  • 花括号{}在Python中仅两种用途:存储键值对的字典、存储可哈希元素的集合
  • 字典类型本身不可哈希,无法作为集合元素存储,因此分类下存储多个元素应该用列表[]结构

修正后的合法预期结构如下:

foo = {
    "a": [
        {"name": "alpha"},
        {"name": "apple"}
    ],
    "b": [
        {"name": "bravo"}
    ],
    "c": [
        {"name": "charlie"},
        {"name": "chucky"}
    ]
}
实现说明

你之前用update()方法没成功的核心原因有两个:一是初始化foo时给每个分类赋值为空字典,无法存储多个元素;二是update()是字典合并方法,本身不适合做元素追加操作。

正确实现逻辑:

  1. 把foo中每个分类的初始值改为空列表,用于存放同首字母的字典元素
  2. 遍历names列表的每一个元素
  3. 取出每个元素name字段值的首字母,将当前元素追加到对应分类的列表中
可直接运行的代码
names = [{"name":"alpha"}, {"name":"apple"}, {"name":"bravo"}, {"name":"charlie"}, {"name":"chucky"}]

foo = {
    "a": [],
    "b": [],
    "c": []
}

for item in names:
    # 取name字段的首字母,转小写避免大写首字母匹配失败
    first_char = item["name"][0].lower()
    if first_char in foo:
        foo[first_char].append(item)

运行后打印foo就能得到目标分组结果。如果后续需要支持不在a/b/c范围内的首字母自动新建分类,可以把初始化逻辑改成动态生成,不用提前写死三个分类键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:42:28