setdefault函数的用法及理解

dict.setdefault(key, default=None)

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

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

使用方法示例:(以下使用方法是我理解setdefault函数的过程)
方法一:给字典中不存在的键赋值为默认值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

最新文章

  1. 实现Unicode和汉字的相互转换
  2. Dijkstra(变形) POJ 1797 Heavy Transportation
  3. C++中的运算符重载
  4. 常用控件产品官方文档/手册/API列表 c#控件文档API列表 asp.net控件产品技术文档中文版
  5. qt上用opencv显示摄像头视频
  6. Zepto源码解读
  7. filestream 读取视频文件
  8. 整理 W3CSchool 常用的CSS属性列表
  9. mutilple output reduce cannot write
  10. Linux Framebuffer驱动剖析之一—软件需求
  11. jupyter notebook常用快捷键
  12. Go学习笔记07-结构体与方法
  13. vue文字跑马灯效果
  14. springmvc学习路线1-基本配置
  15. 常见模块(五) random模块
  16. vue仿淘宝结账订单
  17. 动态iframe 分享
  18. iOS-Core Animation: 变换
  19. 对象序列化:pickle和shelve
  20. qt mysql驱动问题解绝

热门文章

  1. kuma docker-compose 环境试用
  2. kuma 学习四 策略
  3. Codeforces 161.D. Distance in Tree-树分治(点分治,不容斥版)-树上距离为K的点对数量-蜜汁TLE (VK Cup 2012 Round 1)
  4. 第10组 Alpha冲刺(3/4)
  5. Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
  6. An internal error occurred during: &quot;Synchronizing&quot;
  7. mlocate比find快很多的查找命令
  8. SVN提示is already locked 解决办法
  9. Shared variable in python&#39;s multiprocessing
  10. SQLServer查看及设置最大连接数(转)