python字典的setdefault的巧妙用法

现在有一个员工字典,类似这样的结构

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

(0)

相关推荐

  • Python中字典的setdefault()方法教程

    前言 在python基础知识中有说过,字典是可变的数据类型,其参数又是键对值.setdefault()方法和字典的get()方法在一些地方比较相像,都可以得到给定键对应的值.但setdefault()方法可以在字典中并不包含有给定键的情况下,为给定键设定相应的值. Python 字典的 setdefault 方法原型如下: dict.setdefault(key, default=None) 如果给定的 key 在字典中则返回该值,如果不在字典中,就将 key 插入到字典中,并将值设置为指定的

  • python字典改变value值方法总结

    今天这篇文章中我们来了解一下python之中的字典,在这文章之中我会对python字典修改进行说明,以及举例说明如何修改python字典内的值.废话不多说,我们开始进入文章吧. 首先我们得知道什么是修改字典 修改字典 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例: # !/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; dict['Age'] = 8; # update exist

  • python pickle存储、读取大数据量列表、字典数据的方法

    先给大家介绍下python pickle存储.读取大数据量列表.字典的数据 针对于数据量比较大的列表.字典,可以采用将其加工为数据包来调用,减小文件大小 #列表 #存储 list1 = [123,'xiaopingguo',54,[90,78]] list_file = open('list1.pickle','wb') pickle.dump(list1,list_file) list_file.close() #读取 list_file = open('list1.pickle','rb')

  • 在Python中操作字典之setdefault()方法的使用

    setdefault()方法类似于get()方法,但会设置字典[键]=默认情况下,如果键不是已经在字典中. 方法 以下是setdefault()方法的语法: dict.setdefault(key, default=None) 参数 key -- 这是要被搜索的键 default -- 这是没有找到键的情况下返回的值. 返回值 此方法返回字典可用的键值,如果给定键不可用,则它会返回所提供的默认值. 例子 下面的例子显示了setdefault()方法的使用. #!/usr/bin/python d

  • Python利用字典破解WIFI密码的方法

    最近看到网上的一些作品,然后进行一些完善.只是用于学习,不要去干坏事哦.程序来源于网,我只是做了一些优化.当然这种方法破解还是有点慢哦.我用的python 3.6.5 既然要破解wifi,那么连接wifi的模块首先要有的,我们要导入pywifi模块. 有些同学可能没有这个,如果直接通过pip安装的话,可能不能用,听说这个wifi模块被停用了,所以大家如果通过pip安装的不行,那么就下载我提供的. 链接:https://pan.baidu.com/s/1rn-5F1CS5UXOTcLh3QAMhg

  • python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法

    Python的字符集处理实在蛋疼,目前使用UTF-8居多,然后默认使用的字符集是ascii,所以我们需要改成utf-8 查看目前系统字符集 复制代码 代码如下: import sys print sys.getdefaultencoding() 执行: 复制代码 代码如下: [root@lee ~]# python a.py ascii 修改成utf-8 复制代码 代码如下: import sys   sys.setdefaultencoding('utf-8')   print sys.get

  • python 字典 setdefault()和get()方法比较详解

    dict.setdefault(key, default=None) --> 有key获取值,否则设置 key:default,并返回default,default默认值为None dict.get(key, default=None) --> 有key获取值,否则返回default.default默认值为None. 例子:循环迭代message字符串中每个字符,计算每个字符出现的次数 import pprint message = "It is a good day, is not

  • python字典的setdefault的巧妙用法

    现在有一个员工字典,类似这样的结构 staff_dic = {"name":"灭霸", "age": 10000, "hobbies":["打响指", "扣脚"]} 假设我们要给员工添加爱好信息,但是我们不知道hobby这个键存不存在,我们通常的做法是分为三步: 1)从字典中取到hobbies对应的值,如果没有hobbies这个键,则设置这个值为空列表 2)对这个值进行更新操作 3)将更

  • python字典中get()函数的基本用法实例

    目录 前言 1.get()函数利用键来获取值 2.利用字典统计列表中元素出现次数 补充:和dict[key]的区别 总结 前言 以下内容均为个人笔记,仅供学习参考使用,因内容均为自己实践经验所得,个人水平有限,如有错误欢迎指正 注:编程语言为Python3 1.get()函数利用键来获取值 之前在学习python的时候,在获取值得时候常用的方法就是直接 print(dict[key]) 但这种方法中当字典中不存在该键时会返回KeyError类型错误,此时就可以用get()函数还利用键获取值 pr

  • Python字典简介以及用法详解

    #!/usr/bin/env python # -*- coding:utf-8 -*- """ 老规矩以下方法环境2.7.x,请3.x以上版本的朋友记得格式print(输出内容放入括号内) 字典的基本组成以及用法 dict = { key : value } dict[ key ] = value 首先来说说字典是由key键与value值一一对应来组成字典的基本结构 key键不能由list列表,dict字典等多元素命名, key是唯一属性又可以称一对一服务,key相同但只会

  • Python字典循环添加一键多值的用法实例

    循环写入字典key.value.删除指定的键值对: 原文本'jp_url.txt'每行元素以逗号分隔: host_key,product_id,product_name,cont_start,cont_end ah2.zhangyue.com,100002,掌阅,bookId=,&startChapterId ih2.ireader.com,100002,掌阅,bid=,& www.ireader.com,100002,掌阅,&bid=,&cid m.zhangyue.co

  • Python 字典中的所有方法及用法

    字典是Python中唯一内建的映射类型.字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 字典的使用 在某些情况下,字典比列表更加适用: 1.表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组 2.存储文件修改时间,用文件名作为键; 3.数字电话\地址薄 创建字典的五种方式 # 字典的创建方式 # 方式一 {key: value} dict1 = {'one': 1, 'two': 2, 'three': 3} print(dict1) # 方式二

  • 老生常谈python字典用法

    目录 创建字典 遍历 访问 修改 删除 setdefault() 方法 创建字典 python 创建字典可以使用 dict 函数,或者使用花括号,用花括号的方式更为常见. d = { "a": "Athens", "b": "Belgrade", "c": "Cairo" } 或者: d = dict(a="Athens", b="Belgrade"

  • Python中的@cache巧妙用法

    目录 Python中的@cache有什么妙用? @cache缓存功能介绍 @cache的应用场景 补充:Python @cache装饰器 Python中的@cache有什么妙用? 缓存是一种空间换时间的策略,缓存的设置可以提高计算机系统的性能.具体到代码中,缓存的作用就是提高代码的运行速度,但会占用额外的内存空间. 在Python的内置模块 functools 中,提供了高阶函数 cache() 用于实现缓存,用装饰器的方式使用: @cache. @cache缓存功能介绍 在cache的源码中,

  • python字典get()方法用法分析

    本文实例讲述了python字典get()方法用法.分享给大家供大家参考.具体分析如下: 如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 这里给大家分享的就是字典的get()方法. 这里我们可以用字典做一个小游戏,假设用户在终端输入字符串:"1"或者是"2"或者是"3",返回对应的内容,如果是输入其他的,则返回"error" >>> info

  • Python中字典的浅拷贝与深拷贝用法实例分析

    本文实例讲述了Python中字典的浅拷贝与深拷贝用法.分享给大家供大家参考,具体如下: 最近发现的一个很值得记录的东西就是python字典的浅拷贝问题 首先,明确一下什么是浅拷贝,什么是深拷贝: 简单的来说就是,在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存 也就是说,在浅拷贝情况下,不同引用指向的是同一块内存,改其中一个引用,那么其他引用也会跟着改变 应用到python 的字典复制过程: # codi

随机推荐