鱼C论坛

 找回密码
 立即注册
查看: 1434|回复: 0

[技术交流] 字典的get()方法和setdefault()方法

[复制链接]
发表于 2018-2-1 19:07:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1)get()方法       
        在访问一个键的值之前,检查该键是否存在于字典中,这很麻烦。
        好在,字典有一个get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。
        看一个例子:
        ------------------------------------------------------------------------------
        >>> picnicItems = {'apples': 5, 'cups': 2}
        >>> 'I am bringing ' + str(picnicItems.get('cups', 0)) + ' cups.'
        'I am bringing 2 cups.'
        >>> 'I am bringing ' + str(picnicItems.get('eggs', 0)) + ' eggs.'
        'I am bringing 0 eggs.'
        ------------------------------------------------------------------------------
        因为picnicItems 字典中没有'egg'键,get()方法返回的默认值是0。
        不使用get(),代码就会产生一个错误消息,就像下面的例子:
        ------------------------------------------------------------------------------
        >>> picnicItems = {'apples': 5, 'cups': 2}
        >>> 'I am bringing ' + str(picnicItems['eggs']) + ' eggs.'
        Traceback (most recent call last):
        File "<pyshell#34>", line 1, in <module>
        'I am bringing ' + str(picnicItems['eggs']) + ' eggs.'
        KeyError: 'eggs'
        ------------------------------------------------------------------------------

2)setdefault()方法
        你常常需要为字典中某个键设置一个默认值,当该键没有任何值时使用它。
        setdefault()方法提供了一种方式,在一行中完成这件事。
        传递给该方法的第一个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值。如果该键确实存在,方法就会返回键的值。
        看下面的例子:
        ------------------------------------------------------------------------------
        >>> spam = {'name': 'Pooka', 'age': 5}
        >>> spam.setdefault('color', 'black')
        'black'
        >>> spam
        {'color': 'black', 'age': 5, 'name': 'Pooka'}
        >>> spam.setdefault('color', 'white')
        'black'
        >>> spam
        {'color': 'black', 'age': 5, 'name': 'Pooka'}
        ------------------------------------------------------------------------------
        第一次调用setdefault()时,spam 变量中的字典变为{'color': 'black', 'age': 5, 'name':'Pooka'}。
        该方法返回值'black',因为现在该值被赋给键'color'。当spam.setdefault('color','white')接下来被调用时,该键的值“没有”被改变成'white',因为spam 变量已经有名为'color'的键。





       

评分

参与人数 3荣誉 +11 鱼币 +9 贡献 +7 收起 理由
wenwu781923 + 5 + 3 + 3
大魔王S + 1 + 1 + 1 感谢楼主无私奉献!
单行道007 + 5 + 5 + 3

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-7 18:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表