Python中setdefault函数实现字典键值对初始化

Python中setdefault函数实现字典键值对初始化字典是Python内置的一种数据结构,它以键-值对的形式存储数据,每个键对应一个值,所以我们也把字典称作关联数组或者映射。

字典是Python内置的一种数据结构,它以键-值对的形式存储数据,每个键对应一个值,所以我们也把字典称作关联数组或者映射。

在Python中,我们可以通过setdefault函数实现字典键值对的初始化。在这篇文章中,我们将从以下几个方面来讲解它的使用。

一、setdefault函数概述

setdefault函数的作用是在字典中找到指定键并返回对应值,如果找不到则将该键插入字典中,并将对应值初始化为指定值。

setdefault函数的语法如下所示:

dict.setdefault(key, default=None)

其中,key是要查找的键;default是要添加的键值对中,键对应的值,如果没有指定就为None。

二、使用setdefault函数初始化字典键值对

假设我们现在想要统计一段文本中每个单词出现的次数,我们可以首先将文本分割成单词的列表,然后遍历列表,统计每个单词的出现次数:

text = "I am a Python engineer. I love Python programming."
word_list = text.split()

word_count = {}
for word in word_list:
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

print(word_count)

输出结果为:

{'I': 1, 'am': 1, 'a': 1, 'Python': 2, 'engineer.': 1, 'love': 1, 'programming.': 1}

可以发现,我们可以通过遍历单词列表,使用if语句判断该单词是否已经在字典中出现过,如果出现过,就将该单词对应的值加1,否则新建一个键值对,将该单词的值初始化为1。

使用setdefault函数的写法如下:

text = "I am a Python engineer. I love Python programming."
word_list = text.split()

word_count = {}
for word in word_list:
    word_count.setdefault(word, 0)
    word_count[word] += 1
    
print(word_count)

输出结果为:

{'I': 1, 'am': 1, 'a': 1, 'Python': 2, 'engineer.': 1, 'love': 1, 'programming.': 1}

可以看到,使用setdefault函数实现了相同的功能,而且代码更加简洁。

三、使用setdefault函数避免频繁访问字典

在一些特定的场景中,使用setdefault函数可以避免频繁读写字典。例如,我们想要统计一段文本中每个单词的出现位置,可以使用如下代码:

text = "I am a Python engineer. I love Python programming."
word_list = text.split()

word_positions = {}
for i, word in enumerate(word_list):
    if word not in word_positions:
        word_positions[word] = []
    word_positions[word].append(i)
    
print(word_positions)

输出结果为:

{'I': [0], 'am': [1], 'a': [2], 'Python': [3, 5], 'engineer.': [4], 'love': [6], 'programming.': [7]}

可以看到,我们首先判断该单词是否在字典中出现过,如果没有,就新建一个键值对,将值初始化为一个空列表,然后将该单词出现的位置添加到列表中。

使用setdefault函数的写法如下:

text = "I am a Python engineer. I love Python programming."
word_list = text.split()

word_positions = {}
for i, word in enumerate(word_list):
    word_positions.setdefault(word, [])
    word_positions[word].append(i)
    
print(word_positions)

输出结果为:

{'I': [0], 'am': [1], 'a': [2], 'Python': [3, 5], 'engineer.': [4], 'love': [6], 'programming.': [7]}

可以发现,使用setdefault函数的代码更加简洁,而且在字典的键已经存在的情况下,避免了一次的访问和判断操作。

四、结语

在Python中,setdefault函数可以方便地实现字典键值对的初始化,避免了我们在使用字典时需要频繁使用if语句进行判断。同时在一些特定的场景中,使用setdefault函数可以避免频繁读写字典,提高了代码的效率。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/22511.html

(0)
上一篇 2024-01-17
下一篇 2024-01-17

相关推荐

  • Python 变量:用于存储数据的标识符

    Python 变量:用于存储数据的标识符Python 是一种高级编程语言,它提供了丰富的数据类型,其中最基本的就是变量。在Python中,变量用于存储数据,可以是数字、字符串、列表、元组、字典等。变量名需要符合一定的规则,同时一个变量可以赋值为不同的数据类型。

    2024-03-26
    75
  • SQL Server 配置允许远程连接「终于解决」

    SQL Server 配置允许远程连接「终于解决」
    前言 需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: 1、首先是要检查SQLServer数据库服务器中是…

    2023-04-08
    148
  • mysql设计表注意事项_数据库设计需要考虑的问题

    mysql设计表注意事项_数据库设计需要考虑的问题下面探讨的数据库为MySQL 存储引擎为innodb因为这是最常见的,使用最多的数据库和引擎 什么是页分裂? 这是因为聚簇索引采用的是平衡二叉树算法,而且每个节点都保存了该主键所对应行的数据,假设插…

    2023-03-08
    136
  • mysql 8.0 忘记root密码后重置[通俗易懂]

    mysql 8.0 忘记root密码后重置[通俗易懂]最近状态很不好,一直晕晕晕晕晕晕乎乎的,一个测试实例,下班前修改了一下root的密码,接着就下班走人,第二天来发现root密码忘了 刚好自动化安装脚本整理好了,本来想着算了直接重装实例得了,简单省事也

    2022-12-22
    142
  • 2.LinkedBlockingQueue[亲测有效]

    2.LinkedBlockingQueue[亲测有效]java.util.concurrent包下的新类。 实现接口:BlockingQueue LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现。 Lin…

    2023-04-09
    208
  • Python函数调用的使用方法

    Python函数调用的使用方法Python是一种高级编程语言,它让程序员可以更快地编写代码,并通过函数调用来实现代码的复用。函数是Python中一组语句的集合,可以接受参数,并且可以返回一个结果。在本文中,我们将介绍如何使用Python函数调用。

    2024-07-12
    41
  • 大数据hadoop分析怎么样_大数据统计与分析

    大数据hadoop分析怎么样_大数据统计与分析一、Apache Pig概述 Apache PIG提供一套高级语言平台,用于对结构化与非结构化数据集进行操作与分析。这种语言被称为Pig Latin,其属于一种脚本形式,可直接立足于PIG shell

    2023-05-18
    143
  • 数据库的三级模式和两级映像_MySQL架构

    数据库的三级模式和两级映像_MySQL架构本文源码: "GitHub·点这里" || "GitEE·点这里" 一、数据场景 1、表结构简介 任何工具类的东西都是为了解决某个场景下的问

    2022-12-29
    155

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注