python - 为什么在向字典添加键时会出现 KeyError?
问题描述
我仍在努力学习 Python 字典的来龙去脉。当我运行这个:
#!/usr/bin/env python3
d = {}
d['foo']['bar'] = 1
我明白了KeyError: 'foo'
。但是在如何向字典中添加新键? 它说“您通过为该键分配一个值来在字典上创建一个新的键\值对。如果该键不存在,则将其添加并指向该值。如果存在,则它指向的当前值是覆盖。” 那么为什么我会收到关键错误?
解决方案
你至少有两个选择:
- 按顺序创建嵌套字典:
d = {}
d['foo'] = {}
d['foo']['bar'] = 1
- 使用collections.defaultdict,将默认工厂作为 dict 传递:
from collections import defaultdict
d = defaultdict(dict)
d['foo']['bar'] = 1
推荐阅读
- python - Dialogflow - 通过 v2 API 创建带有输入上下文的 Intent
- javascript - Vue - 在 v-for 图像数组中切换一个图像
- swift - Swift - 如何在菜单栏应用程序的窗口中共享一个类(作为单例)?
- heroku - 如何将我的 Squarespace 域指向我的 Heroku 应用程序?
- python - 在图像源不可用的python selenium中下载图像
- r - 如何在多个文件夹上运行脚本
- python - 如何选择所有排列
- python - 如何重写 df["column_A"]` 以仅返回另一列的值等于 '3' 的 column_A 的值?
- node.js - 忽略 http 方法和路径的 API 的缺点
- c++ - 如果我在一个方法中使用 lambda-expr,那么我想调用另一个方法,那么我应该通过值还是通过引用来捕获 `this`?