如何向字典指定键对应的嵌套字典添加新键值对
给嵌套字典添加新键值对的解决方案
嘿,刚看到你的问题,这个需求其实很容易实现,咱们直接按字典的层级访问来操作就行!
首先先修正一下你原代码里的小笔误:原字典里的b:{'d':'e'}应该写成'b': {'d':'e'}(字符串键需要用引号括起来,不然会被当成未定义的变量),修正后的原字典是:
con = {'a':{'b':'c'}, 'b':{'d':'e'}}
最直接的实现方式
要给'a'对应的嵌套字典新增'e':'f',只需要通过层级访问直接赋值即可:
# 给'a'对应的嵌套字典添加新键值对 con['a']['e'] = 'f' # 查看修改后的结果 print(con)
执行这段代码后,输出就是你想要的结果:
{'a': {'b': 'c', 'e': 'f'}, 'b': {'d': 'e'}}
原理说明
con['a']会返回外层字典中'a'对应的嵌套字典{'b':'c'},此时对这个返回的字典执行['e'] = 'f',就相当于给这个嵌套字典新增了一组键值对,外层字典会自动同步这个修改——因为字典是可变对象,我们直接操作的就是原字典里的嵌套部分。
拓展:处理键可能不存在的情况
如果不确定外层字典里是否存在'a'这个键(担心出现KeyError报错),可以用get()方法配合update()来安全操作:
# 如果'a'存在就更新它的嵌套字典,不存在则创建空字典再添加(你当前场景用不到,但可以留作参考) con.get('a', {}).update({'e': 'f'})
这样即使'a'不存在,代码也不会报错,只会创建一个空字典并添加'e':'f'(不过你当前的需求里'a'是明确存在的,所以用第一种方法就足够了)。
内容的提问来源于stack exchange,提问作者new to python
相关产品推荐
相关产品推荐

