python字典的setdefault的巧妙用法

当我们需要将键-值对添加到 Python 字典中时,通常会使用dict[key] = value这样的方式进行添加。但是如果我们在使用字典时需要进行更多的操作,例如添加默认值或默认数据类型,那么 setdefault() 方法就非常实用了。

setdefault()方法允许我们指定一个默认值作为键的默认值,如果该键不存在,则将这个默认值添加到字典中。如果该键已经存在于字典中,则返回该键的值。该方法的语法如下:

dict.setdefault(key,default=None)

其中,key是我们要搜索或添加默认值的键,default是我们要设置的默认值。

下面我将向大家介绍两种有关 Python 字典的 setdefault()方法的巧妙用法:

使用 setdefault()方法在字典中添加新的键值对

假设我们想要在一个字典中添加一个新的键值对,但是我们不确定是否已经存在该键。如果该键尚未创建,则为它分配一个默认值并将其添加到字典中。如果它已经存在于字典中,则保留其原始值。我们可以使用setdefault()方法来轻松解决这个问题。

# 初始化一个字典
fruits = {"apple": 1, "banana": 2}
# 使用setdefault()方法添加一个新的键值对,设置默认值为0
fruits.setdefault("orange", 0)
print(fruits)

# 使用setdefault()方法添加一对已有的键值对,设置默认值为0
fruits.setdefault("apple", 0)
print(fruits)

上述代码的输出结果为:

{'apple': 1, 'banana': 2, 'orange': 0}
{'apple': 1, 'banana': 2, 'orange': 0}

从上面的代码输出可以看出,如果键为 'orange' 的字典键不存在,则将 0 做为默认值添加到字典中。而如果键为 'apple' 的字典键已经存在,则保留其原始值,即 1

使用 setdefault()方法实现在字典中对键的计数

假设我们想从一段文本中统计每个单词出现的次数,并将结果存储在以单词作为键的字典中。现在我们想要在字典中实现一个计数器,并计算每个单词出现的总次数。我们可以使用 setdefault() 方法来完成这个任务。

text = "This is a sample text for demonstrating the usage of the setdefault method"
word_counts = {}
for word in text.split():
    # 为每个单词初始化一个出现次数的计数器,若该键不存在则添加,默认值为0
    word_counts.setdefault(word, 0)
    # 对所出现的单词执行计算
    word_counts[word] += 1

print(word_counts)

上述代码的输出结果为:

{'This': 1, 'is': 1, 'a': 1, 'sample': 1, 'text': 1, 'for': 1, 'demonstrating': 1, 'the': 1, 'usage': 1, 'of': 1, 'setdefault': 1, 'method': 1}

从上述代码结果可以看出,setdefault()方法允许我们轻松地在字典中设置及更新值,这使得在处理各种 Python 字典操作时变得更加灵活。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python字典的setdefault的巧妙用法 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 在python中利用try..except来代替if..else的用法

    以下是“在Python中利用try..except来代替if..else的用法”的完整攻略,其中包括了try..except语句的定义、使用方法、示例说明以及优缺点分析。 在Python中利用try..except来代替if..else的用法 try..except语句的定义 try..except语句是Python中用于异常处理的一种语句。它可以帮助我们在…

    python 2023年5月13日
    00
  • 跟老齐学Python之集合(set)

    跟老齐学Python之集合(set) 集合(set)是Python中的一种数据类型,它是由一组无序且不重复的元素组成。本文将介绍集合(set)的基本概念、创建、添加、删除、操作等方面的内容,并提供两个示例说明。 集合(set)的基本概念 集合(set)是由一组无序且不重复的元素组成的数据类型。集合中的元素必须是不可变的,例如数字、字符串、元组等。集合是变的,…

    python 2023年5月13日
    00
  • python动态监控日志内容的示例

    Python可以通过读取日志文件并动态监控其内容,实现实时监控和分析日志的功能。以下是一个Python动态监控日志内容的示例攻略: 1. 安装必要的库 在Python中,我们可以使用tail库来实现动态监控日志文件的功能。可以使用以下命令安装tail库: pip install tail 2. 读取日志文件 Python中,我们可以使用open函数来读取日志…

    python 2023年5月14日
    00
  • python中实现定制类的特殊方法总结

    Python提供了一些特殊方法,也被称为魔法方法,用于定制类的行为。这些特殊方法都被双下划线包围,比如 __init__, __str__等。在本篇攻略中,我们将对一些重要的定制类的特殊方法进行总结,并提供一些示例说明。 __init__ __init__ 是 Python 中一个重要的特殊方法,用于在创建对象时进行初始化操作。在类的定义中,可以重写__in…

    python 2023年5月19日
    00
  • python自动提取文本中的时间(包含中文日期)

    下面我会详细讲解如何使用Python自动提取文本中的时间,其中也会包含中文日期的处理办法。 如何自动提取文本中的时间 使用Python自动化提取文本中的时间可以分成以下几个步骤: 将文本中出现的时间字符串通过正则表达式或第三方库进行提取。 将提取出的时间字符串进行解析和格式化,得到标准的时间格式数据。 对于中文日期需要进行额外的处理,例如将“两天前”、“昨天…

    python 2023年6月2日
    00
  • Python 共享变量加锁、释放详解

    Python 共享变量加锁、释放详解 在多线程环境下,共享变量的访问会带来数据不一致的问题,因此需要使用锁机制来保证线程安全。Python 提供了 threading 模块来实现多线程和锁机制。 一、什么是锁? 锁是一种同步机制,用来保护共享资源不被并发访问。在多线程环境下,如果没有锁机制,多个线程同时访问同一个共享变量,就会导致数据不一致的问题。比如,一个…

    python 2023年5月19日
    00
  • Python实现字符串模糊匹配方式

    Python实现字符串模糊匹配方式 在实际开发中,我们经常需要对字符串进行模糊匹配。例如,我们需要查找一个字符串中是否包含某个子串,或者需要查找一个字符串中与某个模式匹配的子串。在本文中,我们将介绍如何使用Python实现字符串模糊匹配。 字符串包含判断 在Python中,我们可以使用in关键字来判断一个字符串是否包含另一个字符串。以下是一个示例: text…

    python 2023年5月14日
    00
  • Python实现将Excel内容插入到Word模版中

    以下是Python实现将Excel内容插入到Word模版中的完整实例教程,过程中包含两个示例说明: 总体思路: 首先,我们需要使用Python库openpyxl读取Excel文件中需要插入到Word文档的内容,并使用Python库docxtpl打开要填充的Word模板。然后,我们需要将Excel文件中的数据传递给Word模板并将Word模板保存成新的Word…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部