setdefault函数的用法及理解_elf.samples.setdefault(-程序员宅基地

技术标签: python  setdefault  dict  

dict.setdefault(key, default=None)

功能:
如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于字典中,将读出该键原来对应的值,default的值不会覆盖原来已经存在的键的值。

参数:
key----要查找的键
default-----查找的键不存在时用于设置的默认值

使用方法示例:(以下使用方法是我理解setdefault函数的过程)
方法一:给字典中不存在的键赋值为默认值None 

>>> ExsampleDict={"Exist":"Elle"}
>>> Res=ExsampleDict.setdefault("NotExist",)
>>> print ExsampleDict
{'NotExist': None, 'Exist': 'Elle'}

 方法二:给字典中不存在的键赋值为默认值None

>>> ExsampleDict={"Exist":"Elle"}
>>> Res=ExsampleDict.setdefault("NotExist")
>>> print ExsampleDict
{'NotExist': None, 'Exist': 'Elle'}
>>> 

方法三:读出字典中存在的键对应的值

>>> ExsampleDict={"Exist":"Elle"}
>>> Res=ExsampleDict.setdefault("Exist","NotReplace")
>>> print Res
Elle
>>> type(Res)
<type 'str'>
>>> print ExsampleDict["Exist"]
Elle
>>> 

方法四:给字典中不存在的键赋值为"Replace" 

>>> ExsampleDict={"Exist":"Elle"}
>>> Res=ExsampleDict.setdefault("NotExist","Replace")
>>> print Res
Replace
>>> type(Res)
<type 'str'>
>>> print ExsampleDict
{'NotExist': 'Replace', 'Exist': 'Elle'}
>>> 

方法五:给字典中不存在的键赋值为列表

>>> ExsampleDict={"Exist":"Elle"}
>>> Res=ExsampleDict.setdefault("NotExist",[])
>>> print Res
[]
>>> type(Res)
<type 'list'>
>>> Res=ExsampleDict.setdefault("NotExist",[]).append("Replace")
>>> print ExsampleDict
{'NotExist': ['Replace'], 'Exist': 'Elle'}
>>> 

方法六:给字典中不存在的键赋值为字典

>>> ExsampleDict={"Exist":"Elle"}
>>> ExsampleDict.setdefault("NotExist",{})
{}
>>> ExsampleDict={"Exist":"Elle"}
>>> Res=ExsampleDict.setdefault("NotExist",{})
>>> print Res
{}
>>> type(Res)
<type 'dict'>
>>> Res=ExsampleDict.setdefault("NotExist",{})["Insert"]="InsertValue"
>>> print ExsampleDict
{'NotExist': {'Insert': 'InsertValue'}, 'Exist': 'Elle'}
>>> 

原文参考:https://www.cnblogs.com/elleblog/p/7533413.html 

http://www.runoob.com/python3/python3-att-dictionary-setdefault.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/q389797999/article/details/81239499

智能推荐

java-poi实现:合并汇总不同ecxel的同名sheet页数据_java 对excel 数据汇总-程序员宅基地

文章浏览阅读705次。java-poi、excel操作_java 对excel 数据汇总

C++ LeetCode 171 EXCEL表列序号_计算excel的列序号c++-程序员宅基地

文章浏览阅读152次。给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: “A”输出: 1示例 2:输入: “AB”输出: 28示例 3:输入: “ZY”输出: 701其实就是26进制转10进制class Solution {public: int titleToNumber(string s) { int_计算excel的列序号c++

[Erlang 0052] Erlang otp_src_R15B01 Released_otp_src_r15b01.tar.gz-程序员宅基地

文章浏览阅读729次。Bug fix release : otp_src_R15B01Build date : 2012-04-02This is R15B01, the first maintenance release for the R15B major release.You can find the README file for the release at http_otp_src_r15b01.tar.gz

Python 基础系列 5 - Set 去重原理_python set 底层如何去掉重复元素原理 数组去重-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏3次。在上篇文章《[哈希值和可变性Hash value and mutability](https://blog.csdn.net/wumingxiaoyao/article/details/108912543)》最后说到 set 去重问题,所以这篇主要是通过实践来研究一下 set 去重背后的故事,当然也是参考了网上一些资料得到了一些启发,感谢那些陌生的喜欢分享的博友们。想了解更多 Python 基础序列文章,请参考 [Python 基础系列大纲](https://blog.csdn.net/wumingxia_python set 底层如何去掉重复元素原理 数组去重

R语言 grf包-heterogeneous treatment effect_r语言grf包-程序员宅基地

文章浏览阅读3.9k次,点赞6次,收藏37次。你好_r语言grf包

openCV光平面标定——空间平面拟合-程序员宅基地

文章浏览阅读2.8k次。//Ax+by+cz=Dvoid cvFitPlane(const CvMat* points, float* plane){// Estimate geometric centroid.int nrows = points->rows;int ncols = points->cols;int type = points->type;CvMat* centroid =..._opencv光平面标定

随便推点

新年第一天 | 恶补新一季《黑镜》的同时,营长又深入扒了扒它那擅长机器学习的新爸爸是如何赚钱的-程序员宅基地

文章浏览阅读4.3k次。关注『AI科技大本营』的各位小伙伴,新年好!营长祝愿大家天天都是18岁!跟放假休息的各位一样,元旦假期的营长着实也不想干活……想起前两天刚刚更新的《黑镜》第四季还没有跟,营长便决定在新年的第一天恶补一下科技和AI的黑暗面。第1集,《联邦星舰卡利斯特号》:“柯克船长”——咳,一直被老板和同事精神虐待的游戏公司老码农,却拥有一台能通过DNA来复制意识的机器,于是老码农变身猥琐男,把老板和同事的意识上传_黑镜鳄鱼的眼泪

杰里之双麦降噪原理篇_双麦克风降噪原理-程序员宅基地

文章浏览阅读3.4k次。耳机有两颗麦克风,一颗在顶部,一颗在末端底部,顶部的用来拾取环境噪音,底部的用来拾取通话。在嘈杂的环境中,两颗麦克风拾取的噪音将会反向叠加用来抵消噪音降噪。实际通话过程中,确实非常有效,官方给出的数据是时速30公里/小时的风噪可正常通话,可见其实力非凡。..._双麦克风降噪原理

NGINX的重写与反向代理机制解析_nginx set指令-程序员宅基地

文章浏览阅读1.3k次,点赞35次,收藏26次。在现代Web架构中,NGINX以其高性能、稳定性和灵活性而广受青睐。本文将深入探讨NGINX中的两个核心功能:URL重写和反向代理,以帮助您更好地理解和配置这些强大的特性。_nginx set指令

HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍-程序员宅基地

文章浏览阅读2.3w次,点赞27次,收藏138次。HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍1 HTTP1.0及HTTPSHTTP 建立之初,是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。但随着CSS,Javascript的出现,以及移动互联时代的到来,我们不得不对HTTP进行不断地优化。HTTP优化:影响一个 HTTP 网络请求的因素主要有两个方面:带宽和延迟。随着网络基础建设的完善,带宽因素已经不需要再考虑,仅需要考虑的就是延迟。延迟主要受三个方面影响:浏览器阻塞(HOL blocking_http1.0

vscode开发ROS(19)-ros与arduino串口通信(c++)_c++ rosserial-程序员宅基地

文章浏览阅读1.8k次。ros与arduino串口通信c++写在最前安装serial库编写arduino串口通信程序编写ros节点端口号配置配置CmakeLists.txt文件编译整个ROS工程运行节点后记写在最前串口通信在嵌入式领域的重要性我也就不多说了, 这里的ros与arduino串口通信的方案, 同样适合于stm32, 51单片机等各种芯片. 这里与rosserial有区别, rosserial是基于某种类..._c++ rosserial

Spring系列面试题(Spring、SpringBoot、SpringMvc)_spring,springmvc,springboot面试题-程序员宅基地

文章浏览阅读6.3k次,点赞11次,收藏44次。高频面经汇总:https://blog.csdn.net/qq_40262372/article/details/1160755288.1Spring相关 面试题总结8.1.1什么是Spring框架?Spring是一种轻量级开发框架,旨在提高开发人员的开发效率以及系统的可维护性。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切..._spring,springmvc,springboot面试题

推荐文章

热门文章

相关标签