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()有返回值,返回值为取到的值(键存在)或默认值(键不存在)

相关文章

对pandas的算术运算和数据对齐实例详解

pandas可以对不同索引的对象进行算术运算,如果存在不同的索引对,结果的索引就是该索引对的并集。 一、算术运算 a、series的加法运算 s1 = Series([1,2,3...

一行Python代码制作动态二维码的实现

一行Python代码制作动态二维码的实现

在GitHub上发现了一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码、艺术二维码(黑白/彩色)和动态GIF二维码。 GitHub网站参加:https://g...

python文件操作的简单方法总结

文件操作1 #文件操作流程:1、打开文件,得到一个文件句柄;通过文件句柄操作文件;关闭文件。 #将文件打开文件赋给file1,test_file为文件名,utf-8为文件编码;fil...

python Dijkstra算法实现最短路径问题的方法

本文借鉴于张广河教授主编的《数据结构》,对其中的代码进行了完善。 从某源点到其余各顶点的最短路径 Dijkstra算法可用于求解图中某源点到其余各顶点的最短路径。假设G={V,{E}}...

Tensorflow实现神经网络拟合线性回归

Tensorflow实现神经网络拟合线性回归

本文实例为大家分享了Tensorflow实现神经网络拟合线性回归的具体代码,供大家参考,具体内容如下 一、利用简单的一层神经网络拟合一个函数 y = x^2 ,其中加入部分噪声作为偏置值...