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
相关产品推荐
相关产品推荐

