美文网首页python
python字典设置默认值,setdefault()方法的使用

python字典设置默认值,setdefault()方法的使用

作者: 我_记忆中的自己 | 来源:发表于2019-07-26 23:26 被阅读0次

    常常需要为字典中某个键设置一个默认值,当该键没有任何值时使用它。代码看起来像这样:

    spam = {'name': 'Pooka', 'age': 5} 
    if 'color' not in spam:
         spam['color'] = 'black'
    

    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'的键。

    setdefault()方法是一个很好的快捷方式,可以确保一个键存在。下面有一个小 程序,计算一个字符串中每个字符出现的次数。打开一个文件编辑器窗口,输入以 下代码,保存为 characterCount.py:

    message = 'It was a bright cold day in April, and the clocks were striking thirteen.' 
    count = {}
    for character in message: count.setdefault(character, 0)       
         count[character] = count[character] + 1
         print(count)
    

    程序循环迭代 message 字符串中的每个字符,计算每个字符出现的次数。setdefault() 方法调用确保了键存在于 count 字典中(默认值是 0),这样在执行 count[character] = count[character] + 1 时,就不会抛出 KeyError 错误。程序运行时,输出如下:

    {' ': 13, ',': 1, '.': 1, 'A': 1, 'I': 1, 'a': 4, 'c': 3, 'b': 1, 'e': 5, 'd': 3, 'g': 2, 'i': 6, 'h': 3, 'k': 2, 'l': 3, 'o': 2, 'n': 4, 'p': 1, 's': 3, 'r': 5, 't': 6, 'w': 2, 'y': 1}
    

    从输出可以看到,小写字母 c 出现了3 次,空格字符出现了13 次,大写字母 A 出现了1 次。无论 message变量中包含什么样的字符串,这个程序都能工作,即使该字符串有上百万的字符!

    相关文章

      网友评论

        本文标题:python字典设置默认值,setdefault()方法的使用

        本文链接:https://www.haomeiwen.com/subject/qfwjrctx.html