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

Python双层字典构建咨询:如何为现有字典添加父级层级

解决Python双层字典构建的问题

嘿,这个问题其实很容易解决,但得先纠正一个小误区——你原来的写法会直接报错哦!

为什么原写法不行?

Python字典的**键必须是可哈希(不可变)**的类型(比如字符串、整数、元组),而你想用来当顶层键的David本身是一个字典(可变类型),它是不可哈希的,所以直接写Character = {David: ...}会抛出TypeError: unhashable type: 'dict'的错误。

正确的实现方法

我们只需要把顶层键改成字符串形式的名字(比如'David'),就可以顺利构建双层字典了,这里给你几种常用的方式:

方法1:直接创建双层字典

先定义好子字典,再嵌套进顶层字典:

# 定义子字典
david_info = {'Date of birth': '12111922', 'Age': 7, 'Height ': '1.7m'}
# 构建双层字典
character = {'David': david_info}

方法2:基于已有变量构建

如果你已经有了David这个变量(建议变量名遵循PEP8规范用小写david,不过这里按你的写法来):

David = {'Date of birth': '12111922', 'Age': 7, 'Height ': '1.7m'}
Character = {'David': David}

方法3:先创建空字典再添加

适合需要后续动态添加更多角色的场景:

# 初始化空的顶层字典
Character = {}
# 定义子字典
David = {'Date of birth': '12111922', 'Age': 7, 'Height ': '1.7m'}
# 将子字典添加到顶层字典中
Character['David'] = David

验证结果

运行上面的代码后,打印Character就能得到你想要的双层结构:

print(Character)
# 输出:{'David': {'Date of birth': '12111922', 'Age': 7, 'Height ': '1.7m'}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:28:24