python字典的setdefault的巧妙用法

yipeiwu_com6年前Python基础

现在有一个员工字典,类似这样的结构

staff_dic = {"name":"灭霸", "age": 10000, "hobbies":["打响指", "扣脚"]}

假设我们要给员工添加爱好信息,但是我们不知道hobby这个键存不存在,我们通常的做法是分为三步:

1)从字典中取到hobbies对应的值,如果没有hobbies这个键,则设置这个值为空列表

2)对这个值进行更新操作

3)将更新后的值赋值回字典

hobbies= staff_dic.get("hobby",[])
hobbies.append("毁灭宇宙")
staff_dic["hobbies"] = hobbies

以上方法进行了两次查询操作

如果使用setdefault,只需要查询一次

staff_dic.setdefault("hobbies", []).append("毁灭宇宙")

注意:setdefault()有返回值,返回值为取到的值(键存在)或默认值(键不存在)

相关文章

在Python中关于中文编码问题的处理建议

字符串是Python中最常用的数据类型,而且很多时候你会用到一些不属于标准ASCII字符集的字符,这时候代码就很可能抛出UnicodeDecodeError: 'ascii' codec...

Python3 venv搭建轻量级虚拟环境的步骤(图文)

Python3 venv搭建轻量级虚拟环境的步骤(图文)

今天先聊一聊在windows/mac iOS系统下用venv搭建python轻量级虚拟环境的问题。 使用venv搭建的虚拟环境同virtualenv搭建的虚拟环境,即venv可替代vir...

Python做简单的字符串匹配详解

Python做简单的字符串匹配详解  由于需要在半结构化的文本数据中提取一些特定格式的字段、数据辅助挖掘分析工作,以往都是使用Matlab工具进行结构化数据处理的建模,matl...

关于不懂Chromedriver如何配置环境变量问题解决方法

关于不懂Chromedriver如何配置环境变量问题解决方法

今天新学selenium,安装Chromedriver时翻看了许多网上资料,还有很多CSDN大神写的博客,大神们写东西很多都是一笔带过,让我这种新手有点不知所措,弄了好久才弄懂,具体该如...

python 实现插入排序算法

复制代码 代码如下: #!/usr/bin/python def insert_sort(array): for i in range(1, len(array)): key = arr...