Python中字典的setdefault()方法教程

yipeiwu_com6年前Python基础

前言

在python基础知识中有说过,字典是可变的数据类型,其参数又是键对值。setdefault()方法和字典的get()方法在一些地方比较相像,都可以得到给定键对应的值。但setdefault()方法可以在字典中并不包含有给定键的情况下,为给定键设定相应的值。

Python 字典的 setdefault 方法原型如下:

dict.setdefault(key, default=None)

如果给定的 key 在字典中则返回该值,如果不在字典中,就将 key 插入到字典中,并将值设置为指定的 default 参数,default 的缺省值为 None。

使用 setdefault 方法相当于如下的操作:

if key in dict:
 reurn dict[key]
else:
 dict[key] = default
 return default

该方法与字典的 get 方法有些相似,但有些区别。dict.get dict.setdefault 方法在 key 存在于字典中时都能返回该值,在 key 不在字典中时,也都能返回缺省的值。两个方法的区别在于,当 key 不在字典中时 setdefault 方法会在字典插入缺省的键值并返回,而 get 方法只返回缺省值,不向字典中插入新的 key。

示例:

>>> dct = {}
>>> dct
{}
>>> dct["name"] = "huoty"
>>> dct
{'name': 'huoty'}
>>> dct.setdefault("name", "esenich")
'huoty'
>>> dct
{'name': 'huoty'}
>>> dct.setdefault("fname", "esenich")
'esenich'
>>> dct
{'name': 'huoty', 'fname': 'esenich'}
>>> dct.setdefault("addr")
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("name", "xxx")
'huoty'
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("age")
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("age", 2)
2
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

Python对象中__del__方法起作用的条件详解

对象的__del__是对象在被gc消除回收的时候起作用的一个方法,它的执行一般也就意味着对象不能够继续引用。 示范代码如下: class Demo: def __del__(sel...

Python ZipFile模块详解

Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要...

python利用Tesseract识别验证码的方法示例

python利用Tesseract识别验证码的方法示例

无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈python中光学识别验证码模块tesserocr和pytesseract。tesserocr和pytesseract是Pytho...

用python中的matplotlib绘制方程图像代码

用python中的matplotlib绘制方程图像代码

import numpy as np import matplotlib.pyplot as plt def main(): # 设置x和y的坐标范围 x=np.aran...

pycharm+PyQt5+python最新开发环境配置(踩坑)

pycharm+PyQt5+python最新开发环境配置(踩坑)

安装工具: Pycharm 专业版2017.3 PyQT5 python3 测试工程文件及所需工具: 1、首先安装Pycharm,先前一篇介绍安装破解版的可以参...