Python 判断dict中指定key是否存在的推荐方法
判断python的dict是否包含某个key是一个常见操作。
一般有两种方案:
1 | # 方案A(推荐) |
结论
这里通过对比测试,结论为:
- 单纯检查key是否存在:不使用 .keys() 效率更高
- 如果需要检查并取出value,可考虑使用
dict.get
方法
详细对比测试结果
通过 jupyter notebook 中的 %%timeit
进行测试。
结果为:
key类型 | key是否存在 | 方法 | 耗时 |
---|---|---|---|
int | yes | no .keys() | 58.1ns |
int | yes | .keys() | 137ns |
int | no | no .keys() | 56.3ns |
int | no | keys() | 137ns |
string | yes | no .keys() | 68.6ns |
string | yes | .keys() | 138ns |
string | no | no .keys() | 57.3ns |
string | no | keys() | 135ns |
结论:
- 无论哪种key类型,不使用 .keys() 效率更高
- 无论key是否存在,不使用 .keys() 效率更高
详细记录如下:
测试代码
1 | # 分别构建键类型为 int 和 str 的 dict |
测试结果明细
1 | %%timeit |