zoukankan      html  css  js  c++  java
  • setdefault函数的用法及个人理解

    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'}

    方法二:给字典中不存在的键赋值为默认值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'}
    >>> 
  • 相关阅读:
    luogu P4284 [SHOI2014]概率充电器 期望 概率 树形dp
    luogu P5161 WD与数列 SAM 线段树合并 启发式合并
    5.5 省选模拟赛 B Permutation 构造 贪心
    luogu P3761 [TJOI2017]城市 树的直径 bfs
    一本通 1783 矩阵填数 状压dp 容斥 计数
    CF R638 div2 F Phoenix and Memory 贪心 线段树 构造 Hall定理
    BSOJ 5445 -- 【2018雅礼】树 prufer序列 dp
    CF1037H Security 线段树合并 SAM
    c++11の顺序容器
    c++11の关联容器
  • 原文地址:https://www.cnblogs.com/apollo1616/p/9527704.html
Copyright © 2011-2022 走看看