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编程中经常会遇到的一个问题,而想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一个参数是回调用延时,第二个是回调的函数名称...

python之yield表达式学习

python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable 复制代码 代码如下: mylist = [1,2,...

python实现查询苹果手机维修进度

python实现查询苹果手机维修进度

万恶的苹果,我的5s最近坏了,官方的零售店是根本就预约不到啊预约不到啊,所以只好去找授权维修点了,昨天送去之后人家说可能要返厂,周期大概20天左右,我直接就醉了,20天啊,快一个月啊,等...

Python基于hashlib模块的文件MD5一致性加密验证示例

本文实例讲述了Python基于hashlib模块的文件MD5一致性加密验证。分享给大家供大家参考,具体如下: 使用hashlib模块,可对文件MD5一致性加密验证: #python...

详解如何用OpenCV + Python 实现人脸识别

详解如何用OpenCV + Python 实现人脸识别

下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建。于是迫不及待的想体验一下opencv的人脸识别,如下文。 必备知识 Haar-like 通俗的来讲,...