setdefault函数的用法及理解

  1. dict.setdefault(key, default=None)

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

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

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

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

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

  1. >>> ExsampleDict={"Exist":"Elle"}
  2. >>> Res=ExsampleDict.setdefault("NotExist")
  3. >>> print ExsampleDict
  4. {'NotExist': None, 'Exist': 'Elle'}
  5. >>>

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

  1. >>> ExsampleDict={"Exist":"Elle"}
  2. >>> Res=ExsampleDict.setdefault("Exist","NotReplace")
  3. >>> print Res
  4. Elle
  5. >>> type(Res)
  6. <type 'str'>
  7. >>> print ExsampleDict["Exist"]
  8. Elle
  9. >>>

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

  1. >>> ExsampleDict={"Exist":"Elle"}
  2. >>> Res=ExsampleDict.setdefault("NotExist","Replace")
  3. >>> print Res
  4. Replace
  5. >>> type(Res)
  6. <type 'str'>
  7. >>> print ExsampleDict
  8. {'NotExist': 'Replace', 'Exist': 'Elle'}
  9. >>>

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

  1. >>> ExsampleDict={"Exist":"Elle"}
  2. >>> Res=ExsampleDict.setdefault("NotExist",[])
  3. >>> print Res
  4. []
  5. >>> type(Res)
  6. <type 'list'>
  7. >>> Res=ExsampleDict.setdefault("NotExist",[]).append("Replace")
  8. >>> print ExsampleDict
  9. {'NotExist': ['Replace'], 'Exist': 'Elle'}
  10. >>>

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

  1. >>> ExsampleDict={"Exist":"Elle"}
  2. >>> ExsampleDict.setdefault("NotExist",{})
  3. {}
  4. >>> ExsampleDict={"Exist":"Elle"}
  5. >>> Res=ExsampleDict.setdefault("NotExist",{})
  6. >>> print Res
  7. {}
  8. >>> type(Res)
  9. <type 'dict'>
  10. >>> Res=ExsampleDict.setdefault("NotExist",{})["Insert"]="InsertValue"
  11. >>> print ExsampleDict
  12. {'NotExist': {'Insert': 'InsertValue'}, 'Exist': 'Elle'}
  13. >>>

setdefault函数的用法及个人理解的更多相关文章

  1. setdefault函数的用法及理解

    setdefault函数的用法及理解 dict.setdefault(key, default=None) 功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于 ...

  2. js中bind、call、apply函数的用法

    最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但 ...

  3. 转:从编译链接过程解析static函数的用法

    关于static函数的用法 就像我们熟知的那样,变量可以分全局的和局部的,函数也可以分全局的和局部的. 比如说,在一个工程的common.h中定义了一个全局变量 int test;那么在整个工程的作用 ...

  4. js中bind、call、apply函数的用法 (转载)

    最近看了一篇不错的有关js的文章,转载过来收藏先!!! 最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web 的项目,然后在腾讯实习的时候用 j ...

  5. 详解php 获取文件名basename()函数的用法

    PHP 中basename()函数给出一个包含有指向一个文件的全路径的字符串,此函数返回基本的文件名,本篇文章收集了关于使用PHP basename()函数获取文件名的几篇文章,希望对大家理解使用PH ...

  6. Oracle trunc()函数,decode()函数,substr函数,GREATEST函数,java中substring函数的用法

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...

  7. CC++中sizeof函数的用法

    C/C++中sizeof()函数的用法 学习C/C++有时会遇到下面的情况: 已知 char *str1="absde"; char str2[]="absde" ...

  8. python items和setdefault函数

    items() dict = {'runoob': '菜鸟教程', 'google': 'Google 搜索'} print("Value : %s" % dict.setdefa ...

  9. Oracle 中 CONTAINS 函数的用法

    Oracle 中 CONTAINS 函数的用法 1. 查询住址在北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( a ...

随机推荐

  1. Jpa调用存储过程及参数

    public List<Object> findAllEntityListBySearch(Long inputInfoId, int flag) throws Exception { L ...

  2. C# t4模版引擎笔记 引入外部dll

    <#@ assembly name="D:\Documents\Downloads\Util\Util\bin\Debug\Util.dll" #> <#@ im ...

  3. margin: 0px auto; center 行类 块级

    <html> <head> <title> biaoti </title> </head> <body style="bor ...

  4. Sql Server分页分段查询百万级数据四种项目实例

    实际项目中需要实现自定义分页,最关键第一步就是写分页SQL语句,要求语句效率要高. 那么本文的一个查询示例是查询第100000-100050条记录,即每页50条的结果集.查询的表名为infoTab,且 ...

  5. 经常使用传感器协议3:CJ/T-188 冷热量表协议解析2

        本文详细阐述JY公司冷热量表(记热量)传输协议.并以此说明CJ/T-188协议在厂家详细应用时,并不一致. 本文及兴许文章将对这些不同点予以总结(文中所述协议与日志"CJ/T-188 ...

  6. file、inode在应用层和驱动层之间的联系_转

    转自:http://blog.csdn.net/dreaming_my_dreams/article/details/8272586 应用层和驱动的衔接,一直是一个老大难问题,若弄不清楚,总觉得驱动写 ...

  7. golang解析json

    解析json,在很多语言都是很常用的,go提供了相应的包"encoding/json"来处理.直接上代码,如下: package main import ( "encod ...

  8. jxta 2.8x启动了

    http://chaupal.github.io/ ———————————————————————————————————————————————————————————————————— 至少两个月 ...

  9. Linux 比较重要且难掌握命令 集合

    1. find find path –option [-print] [-exec command] {} \; find . -maxdepth 1 -name aa find . -maxdept ...

  10. struts-config.xml 文件:

    struts-config.xml配置文件是一个在Web客户端组件的视图和模型之间的联系,但你的项目的99.99就不会碰这些设置%.基本的配置文件包含以下主要内容: SN Interceptor &a ...