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

最新文章

  1. SQL 提示介绍 hash/merge/concat union
  2. BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]
  3. RabbitMQ的几种典型使用场景
  4. 【转】HTTP POST GET 本质区别详解
  5. 【matlab】设定C++编译器
  6. jquery 同id使用指针寻找具体每个id的值
  7. spring记录
  8. apache http client vs urlconnection
  9. WPF Image控件使用本地图片
  10. 一路踩过的坑 php
  11. 使用apache和IIS,共用80端口的一个解决方案【转】
  12. javascript-函数进阶
  13. 正向代理vs.反向代理
  14. css :target
  15. Java+XSL合并多个XML文件
  16. 多机部署redis5.0集群环境
  17. “学习CSS布局” 笔记
  18. ggplot2 multiply graphs on one figure
  19. Linux ELF 文件格式
  20. 第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码

热门文章

  1. JavaScript的一些知识碎片(2)-反射-全局变量-回调
  2. unix环境高级编程基础知识之第四章
  3. PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)
  4. grootJsAPI文档
  5. kmp模板,线性完成pos
  6. 服务链(Service Chaining,or Service Function Chaining,SFC,功能服务链)
  7. 屠龙之路_坚持就是胜利_NinthDay
  8. iOS开发--QQ音乐练习,歌词的展示,歌词的滚动,歌词的颜色变化
  9. 如何让div显示在embed,flash元素之上
  10. java-通讯stocket插件mina实例