python字典的setdefault的巧妙用法

yipeiwu_com7年前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编程scoketServer实现多线程同步实例代码

本文研究的主要是Python编程scoketServer实现多线程同步的相关内容,具体介绍如下。 开发过程中,为了实现不同的客户端同一时刻只能有一个使用共同数据。 虽说用Python编写...

python+opencv实现摄像头调用的方法

python+opencv实现摄像头调用的方法

最近入了一块树莓派,想让其实现摄像头的调用,因此写下此博客备忘 一、树莓派网络的配置 首先,对树莓派进行网络配置,否则就无法进行软件的安装 我们知道,ifconfig命令可以修改ip地址...

Python实现合并excel表格的方法分析

本文实例讲述了Python实现合并excel表格的方法。分享给大家供大家参考,具体如下: 需求 将一个文件夹中的excel表格合并成我们想要的形式,主要要pandas中的concat()...

Python中的defaultdict与__missing__()使用介绍

前言 今天我们的主角是 defaultdict ,同时也会介绍一下模仿方法 __missing__() ,本文主要来源于网友博客,分享给有需要的人。下面话不多说了,来一起看看详细的介绍吧...

Python之inspect模块实现获取加载模块路径的方法

该文主要介绍如何获取模块的路径,需要申明的是这里所说的模块可以是功能实现的该模块,也可以是别的模块。 使用到的是 inspect 模块的 .getsourcefile(需要获取的模块名)...