python字典的setdefault的巧妙用法

yizhihongxing

当我们需要将键-值对添加到 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使用多线程编写tcp客户端程序

    下面是Python使用多线程编写TCP客户端程序的攻略: 1. 导入socket模块 在编写TCP客户端程序前,需要先导入Python内置的socket模块。可以使用如下代码进行导入: import socket 2. 创建套接字 在创建TCP客户端程序前,需创建一个套接字(socket),用于与服务器端进行连接和通信。通过Python中的socket模块,…

    python 2023年5月18日
    00
  • Python定时任务随机时间执行的实现方法

    Python定时任务随机时间执行的实现方法 定时任务是很常见的需求,一般情况下都是按照设定的时间点执行任务,但是有时候为了避免同时触发大量任务,可以考虑将任务分散到一定的时间段内随机执行。这篇文章将介绍如何使用Python实现定时任务随机时间执行的方法。 使用time模块实现定时任务 time模块是Python中用于操作时间的一个标准库,可以使用time.s…

    python 2023年6月2日
    00
  • Python 如何读取字典的所有键-值对

    要读取一个Python字典中的所有键值对,可以使用字典的items()方法。该方法返回一个包含所有键值对的元组列表,列表中每个元组都有两个值,第一个值是键,第二个值是对应的值。 以下是读取字典所有键值对的示例代码: # 定义一个字典 my_dict = {"name": "Lucy", "age":…

    python 2023年5月13日
    00
  • java 计算中位数的实现方法

    Java计算中位数的实现方法 中位数是一个集合中的中间值。把所有数值按照大小排序,把这个序列的数学中间值称为中位数。对于有偶数个数的序列,不存在中间值,此时中位数为中间两个数的平均数。 在Java编程中,计算中位数可以使用以下两种方法: 方法一:暴力计算法 该方法是最直观的计算中位数的方法,但是时间复杂度较高,对于大量数据处理效率并不高。步骤如下: 对集合进…

    python 2023年6月3日
    00
  • Python 中的集合和字典

    Python中的集合和字典都是内置数据结构,它们在处理大量数据时提供了高效而强大的工具和方法。 集合 集合(set)是一种可变无序容器,其中没有重复的元素。Python中的集合类似于数学中的集合,支持交集、并集、差集等运算。 创建集合 可以使用 {} 或 set() 来创建集合。注意,如果要创建空集合,必须使用 set(),因为 {} 会创建空字典而不是集合…

    python 2023年5月13日
    00
  • Python判断文件和文件夹是否存在的方法(最新推荐)

    下面是详细讲解“Python判断文件和文件夹是否存在的方法(最新推荐)”的完整攻略。 1. 确定路径 在判断文件和文件夹是否存在前,我们需要确定它们的路径。在Python中,可以使用os.path模块来管理文件路径。比如,假设我们要判断/path/to/file路径下是否存在一个名为example.txt文件的话,可以如下确定路径: import os fi…

    python 2023年6月2日
    00
  • Python图像识别+KNN求解数独的实现

    一、准备工作 安装Python环境和必要的第三方库(如:numpy、opencv-python、sklearn等) 准备训练集数据,用于训练KNN分类器 准备待求解数独图片 二、拆分图片 在拆分图片这一步,我们需要对数独图片进行拆分,将每个格子拆分出来。可以使用opencv-python库中的cv2.adaptiveThreshold函数进行二值化处理,然后…

    python 2023年5月18日
    00
  • Python变量的定义与使用

    变量是干什么的? 变量是程序在运行过程中,存放临时数据的地方。 你可以把变量理解成一个个小箱子,我们可以把用到的数据放到这个箱子里,等到有需要的时候再拿出来使用。 举个例子,你可以从大脑运行的角度想象一下:当大脑想要计算:4×5÷2=多少时,它会先计算出4×5的结果等于20,此时20这个数字会被大脑记住(也就是保存在某个地方),接下来再用20去除以2,才得到…

    2022年11月12日
    00
合作推广
合作推广
分享本页
返回顶部