Python字典查找报Keyerror解决方法
Python的字典一般都直接查找key ,比如
dict={'a':1,'b':2,'c':3}
print(dict['a'])
但是如果在查找的key不存在的时候就会报:KeyError:
比如你要查看print(dict['d'])
由于这个时候dict里面并没有这个key ,所以就会直接报错,那么这个时候其实python给我们提供了一种很棒的解决方法,那就是用
setdefault,用法如下: dict.setdefault(key,[这里设置如果不存在想将值设置为啥,默认为None])
那么这里我们可以用此方法解决:
print(dict.setdefault('d',0))
然后就没有问题啦,注意下就是setdefault是如果要想往dict中添加新值的时候就使用此函数,如果只是单纯想要做查找,碰到key不存在或者希望在通过这个键读取值的时候能得到一个默认值,那么建议用defaultdict
首先先介绍下这个所谓的defaultdict,来自于collections模块,collections是个集合模块,defaultdict(function_factory)构建的是一个类似dictionary的对象,其中key的值,自行确定赋值,但是value的类型是function_factory的类实例,而且具有默认值.这里还引入了一个概念就是工厂函数,python的工厂函数就是指那些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例。比如int(),str(),set()等,这里我们看下例子:
import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = collections.defaultdict(list)
for k, v in s:d[k].append(v)
print(d['yellow'])
print(d['white'])
print(list(d.items()))
我们最后得到的输出结果如下:
我们可以看到,当d中没有对应的key时最后返回的是个空列表,那是因为我们在设置defaultdict的时候用的工厂函数是list,而list的默认值是空列表,下面我们在看下如果工厂函数是set()会是什么样子
import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = collections.defaultdict(set)
for k, v in s:d[k].add(v)
print(d['yellow'])
print(d['white'])
print(list(d.items()))
结果输出如下:
Python字典查找报Keyerror解决方法相关推荐
- Python 中文注释报错解决方法
Python 中文注释报错解决方法 参考文章: (1)Python 中文注释报错解决方法 (2)https://www.cnblogs.com/cjiong/p/5881983.html 备忘一下.
- Eclipse + Pydev开发Python时import报错解决方法
一. 原文链接:http://blog.csdn.net/lhanchao/article/details/51306626 用eclipse +PyDev开发python时, ...
- python运行启动报错解决方法_解决python运行启动报错问题
解决python运行启动报错问题 问题一: python启动报错api-ms-win-crt-process-l1-1-0.dll丢失 解决: 下载api-ms-win-crt-process-l1- ...
- python运行启动报错解决方法_51testing:iOS自动化测试的那些干货:关于appium启动报错问题的解决办法...
原标题:51testing:iOS自动化测试的那些干货:关于appium启动报错问题的解决办法 我们在进行iOS Appium自动化测试的时候,会遇到环境配置.兼容使用问题,这里做个总结,以避免后续踩 ...
- python运行启动报错解决方法_pyspider启动错误解决(Python 3.7)
问题一 安装好pyspider之后,在启动的时候,报出上图错误. 原因 async和await从 python3.7 开始已经加入保留关键字中. 参考: What's New In Python 3. ...
- 深度学习部署:Windows安装pycocotools报错解决方法
深度学习部署:Windows安装pycocotools报错解决方法 1.pycocotools库的简介 2.pycocotools安装的坑 3.解决办法 更多Ai资讯:公主号AiCharm 本系列是作 ...
- Parsing error: No Babel config file detected for xxx Either disable config file checking...报错解决方法
Parsing error: No Babel config file detected for xxx Either disable config file checking-报错解决方法 使用Vu ...
- python scipy安装失败的解决方法
python scipy安装失败的解决方法 from scipy.misc import imreadTraceback (most recent call last):File "D:/P ...
- 关于python卸载不掉的解决方法
关于python卸载不掉的解决方法 python的卸载 ** 问题: 今天在删除python3.7.3的时候,发现使用安装包"python-3.7.3-amd64.exe"卸载(u ...
最新文章
- Compiling: main.cpp /bin/sh: g++: not found
- C#中ref和out的原理
- 一条命令monkey命令
- 动态规划解题一般思路
- zstd安装_在ARM架构服务器上编译Greenplum6并制作rpm安装包
- hdu1181(变形课)
- jquery淡入淡出效果及突出显示案例
- CVPR 新规严禁审稿期间公开宣传论文,可发 arXiv,LeCun:疯了吧!
- Pr效果:视频过渡效果
- 利用python制作动态二维码
- 宽带拨号找不到netcfg.hlp文件
- PLA-PEG2000-Maleimide,聚乳酸和马来西安亚楠修饰的PEG,MAL-PEG2000-PLA
- Unity 之游戏特效
- 根据贷款还款方式(等额本金,等额本息,等本等息,先息后本),计算本息
- OpenWrt上搭建纯L2TP服务器[ZT]
- 2021年中国CRM市场规模及市场格局分析:市场规模达156亿元[图]
- 安装window7系统
- MEM/MBA 写作-论说文(03)立意 答案解析
- USB射频功率计DIY——构建软件校准方案
- 硅谷课堂第十一课-公众号消息和微信授权