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 pandas中read_csv参数示例详解

    下面是详细的攻略: Python pandas中read_csv参数示例详解 pandas是Python中一个非常流行的数据处理库,其中的read_csv()函数可以用于读取CSV文件。read_csv()函数有很多参数,本文将介绍其中一些常用的参数及其用法。 参数说明 read_csv()函数的常用参数如下: filepath_or_buffer:CSV文…

    python 2023年5月14日
    00
  • Python pandas.replace的用法详解

    在Python中,pandas是一个强大的数据分析库,提供了许多数据处理和转换的函数。其中,pandas.replace()函数用于替换DataFrame或Series中的值。本文将详细介绍pandas.replace()函数的用法,包括函数参数、返回值、示例说明等。 函数参数 pandas.replace()函数的语法如下: DataFrame.repla…

    python 2023年5月14日
    00
  • python快速直白入门(半新手向,老手复习向)

    主用python做项目有一段时间,这次简单总结学习下。为后面的项目编写,进行一次基础知识的查缺补漏、 1、变量名和数据类型 “”” 变量名,只能由” 数字、大小写字母、_ ” 组成,且不能以数字开头 “”” # 整数 int # hashable,不可变对象 a = 5 # 浮点数 float # hashable,不可变对象 a1 = 3.14 # 字符串…

    python 2023年5月8日
    00
  • python使用bs4爬取boss直聘静态页面

    在本攻略中,我们将介绍如何使用Python的BeautifulSoup库爬取BOSS直聘的静态页面。我们将提供两个示例,演示如何使用BeautifulSoup库提取职位信息和公司信息。 步骤1:获取页面内容 在开始之前,我们需要获取目标页面的内容。我们可以使用Python的requests库来获取页面内容。在本攻略中,我们将使用requests库来获取页面内…

    python 2023年5月15日
    00
  • Python中的配对函数zip()解读

    Python中的配对函数zip()解读 在Python中,有一个非常有用的函数——zip(),可以将多个可迭代对象进行“配对”,形成新的可迭代对象。zip()函数可以用于处理多个序列数据,可以充分利用zip()函数之间的优美威力,进行数据分析、处理、比较等多种任务。下面就详细讲解Python中的zip()函数的相关知识。 zip()函数的语法 zip()函数…

    python 2023年5月14日
    00
  • Python+requests+unittest执行接口自动化测试详情

    下面是Python + requests + unittest执行接口自动化测试的详细实例教程。 环境准备 在进行接口自动化测试之前,我们需要确保以下环境已经准备好: Python 3.x版本 requests库 unittest模块 编写测试用例 首先,我们需要创建一个Python文件。我们将文件名设置为test_example.py。 导入必要的模块: …

    python 2023年5月13日
    00
  • python数据类型之间怎么转换技巧分享

    Python数据类型之间转换技巧分享 Python作为一门高级编程语言,内置了多种数据类型。在实际应用中,我们经常需要对这些不同类型的数据进行转换。本文将介绍Python中常见的数据类型之间的转换技巧,希望能帮助读者更好地掌握这门语言。 数字类型转换 int、float转换 将int类型转换为float类型,可以使用float()函数: a = 10 b =…

    python 2023年6月3日
    00
  • Python异常处理如何才能写得优雅(retrying模块)

    Python异常处理如何才能写得优雅(retrying模块) 在Python编程中,异常处理是非常重要的一部分。为了让代码更加优雅,我们可以使用retry块来异常。本文将详细讲解如何使用retrying模块来优雅地处理异常,包括retrying模块的安装、方法和两个示例。 安装retrying模块 在使用retrying模块之前,我们需要先安装它。可以使用命…

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