Python KeyError
2024-10-10 05:21:01
Google一下轻松找到了答案,大家可以看一下Python Wiki,很简单,翻译如下。
在Python中,当你使用a[key]这种方式从字典中获取一个值时,若字典中不存在这个此key时就会产生一个KeyError的错误,比如:
In [1]: d = {'name': 'wang'}
In [2]: d['name']
Out[2]: 'wang'
In [3]: d['age']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-3-39d5d5cefe61> in <module>()
----> 1 d['age']
KeyError: 'age'
不过也提供了解决办法:可以使用a.get(key, default_value)这种方式来避免这种错误,如下:
In [4]: d.get('age', 13)
Out[4]: 13
还有一种更高级的方法,不知道改怎么翻译好,大家可以去看原文,setdefault(key, value)方法,使用方法如下(好像实现的是对应的一个关系):
In [7]: default = 'wang'
In [8]: dog_own_by = {'Peter': 'zhao', 'Bug': 'qian'}
In [9]: dogs = []
In [10]: for owner in ['Peter', 'Bug', 'Bad']:
....: dog
dog_own_by dogs
....: dogs.append(dog)
dog_own_by dogs
....: dogs.append(dog_own_by.setdefault(own, default))
....:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-10-cf8486afc0be> in <module>()
1 for owner in ['Peter', 'Bug', 'Bad']:
----> 2 dogs.append(dog_own_by.setdefault(own, default))
3
NameError: name 'own' is not defined
In [11]: for owner in ['Peter', 'Bug', 'Bad']:
dogs.append(dog_own_by.setdefault(owner, default))
....:
In [12]: dogs
Out[12]: ['zhao', 'qian', 'wang']
In [13]: dog
dog_own_by dogs
In [13]: dog_own_by
Out[13]: {'Bad': 'wang', 'Bug': 'qian', 'Peter': 'zhao'}
看了link的翻译,功能和get差不多,具体说是如果key还不存在于已有的字典中则添加到里边去,并赋一个默认值,实验一下,如下:
In [14]: d
Out[14]: {'age': 13, 'name': 'wang'}
In [15]: d.setdefault('sex', 'male')
Out[15]: 'male'
In [16]: d
Out[16]: {'age': 13, 'name': 'wang', 'sex': 'male'}
好物、羊毛线报群,需要的可加QQ群 1049623906
最新文章
- SQL 提示介绍 hash/merge/concat union
- BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]
- RabbitMQ的几种典型使用场景
- 【转】HTTP POST GET 本质区别详解
- 【matlab】设定C++编译器
- jquery 同id使用指针寻找具体每个id的值
- spring记录
- apache http client vs urlconnection
- WPF Image控件使用本地图片
- 一路踩过的坑 php
- 使用apache和IIS,共用80端口的一个解决方案【转】
- javascript-函数进阶
- 正向代理vs.反向代理
- css :target
- Java+XSL合并多个XML文件
- 多机部署redis5.0集群环境
- “学习CSS布局” 笔记
- ggplot2 multiply graphs on one figure
- Linux ELF 文件格式
- 第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码
热门文章
- JavaScript的一些知识碎片(2)-反射-全局变量-回调
- unix环境高级编程基础知识之第四章
- PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)
- grootJsAPI文档
- kmp模板,线性完成pos
- 服务链(Service Chaining,or Service Function Chaining,SFC,功能服务链)
- 屠龙之路_坚持就是胜利_NinthDay
- iOS开发--QQ音乐练习,歌词的展示,歌词的滚动,歌词的颜色变化
- 如何让div显示在embed,flash元素之上
- java-通讯stocket插件mina实例