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 读写txt文件 json文件的实现方法

首先第一步,打开文件,有两个函数可供选择:open() 和  file() ①. f = open('file.txt',‘w')    ... &nbs...

Python保存MongoDB上的文件到本地的方法

本文实例讲述了Python保存MongoDB上的文件到本地的方法。分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接...

Python实现对象转换为xml的方法示例

本文实例讲述了Python实现对象转换为xml的方法。分享给大家供大家参考,具体如下: # -*- coding:UTF-8 -*- ''''' Created on 2010-4-...

在Linux系统上部署Apache+Python+Django+MySQL环境

在Linux系统上部署Apache+Python+Django+MySQL环境

Linux+apache+mysql+python+mod_python+Django 说明:系统rhel 5.3,默认安装httpd、mysql,没有安装的,请下载安装RPM包,删除/...

python使用PyV8执行javascript代码示例分享

安装相应的库,我使用的是PyV8 需要注意的是里面写的function函数需要用()括起来 复制代码 代码如下:import PyV8 class Test():   ...