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的列表list和集合set操作

基于python的列表list和集合set操作

以下是一些python的list和set的基本操作 1. list的一些操作 list = [1, 2, 3] list.append(5) print(list) list.e...

python实现k-means聚类算法

python实现k-means聚类算法

k-means聚类算法 k-means是发现给定数据集的k个簇的算法,也就是将数据集聚合为k类的算法。 算法过程如下: 1)从N个文档随机选取K个文档作为质心 2)对剩余的每个文档测量其...

修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

之前把现有这台阿里CentOS7.2系统的Python2.7.5升级成Python3.6后,yum工具就不能不觉使用了。当时查了下说明python版本的问题,但是用网上的方法还是没解决,...

Python制作简易注册登录系统

Python制作简易注册登录系统

这次我主要讲解如何用Python基于Flask的登录和注册,验证方式采用Basic Auth 主要用以下库 import os #Flask的基础库 from flask imp...

numpy给array增加维度np.newaxis的实例

如下所示: a[:, np.newaxis] # 给a最外层中括号中的每一个元素加[] a[np.newaxis, :] # 给a最外层中括号中所有元素加[] 以上这篇numpy给...