python字典(一)——defaultdict的学习

news2025/4/22 10:06:38

一、前言

本页主要用来记录python字典的一些知识

二、Python中的defaultdict的详解

2.1defaultdict返回的默认值

defaultdict顾名思义默认字典,这个字典属于普通字典的一个子集,是对普通字典的改进

dcit的使用:

当访问字典里面不存在的key时会报错

defaultdict的使用:

当访问字典里面不存在的key时会返回默认值

事实上,defaultdict还可以返回其他默认值,defaultdict一般都会接受一个工厂函数作为参数,不同的参数返回不同的默认值

语法:dict =defaultdict( factory_function)

其中factory_function可以为set、list、str、int、dict等,当访问不存在的key

defaultdict( set)返回set()

defaultdict(list)返回[]

defaultdict( str)返回空字符串

defaultdict( int)返回0

defaultdict(dict)返回dict

举例:

    1

    2

    3

    4

    5

    6

    7

    8

    9

   10

   11

   12

   13

from collections import defaultdict

dict1 = defaultdict(set)

dict2 = defaultdict(list)

dict3 = defaultdict(str)

dict4 = defaultdict(int)

dict5 = defaultdict(dict)

print(dict1[1])

print(dict2[1])

print(dict3[1])

print(dict4[1])

print(dict5[1])

得到:

set()
[]

0
{}

2.2.defaultdict的使用

工厂函数为list

    1

    2

    3

    4

    5

    6

    7

    8

    9

   10

   11

   12

   13

   14

   15

   16

   17

   18

   19

from collections import defaultdict

def test2():

    test_list = [("A", "1"), ("B", "1"), ("A", "2"), ("B", "2"), ("A", "3"), ("B", "3")]

    test_default_dict = defaultdict(list)

    print(test_default_dict)

    for key, value in test_list:

        test_default_dict[key].append(value)

    print(test_default_dict)

    print(type(test_default_dict))

    for key, value in test_default_dict.items():

        print(key, value)

if __name__ == "__main__":

    test2()

输出:

defaultdict(<class 'list'>, {})

defaultdict(<class 'list'>, {'A': ['1', '2', '3'], 'B': ['1', '2', '3']})

<class 'collections.defaultdict'>

A ['1', '2', '3']

B ['1', '2', '3']

工厂函数为str

    1

    2

    3

    4

    5

    6

    7

    8

    9

   10

   11

   12

   13

   14

   15

   16

def test3():

    test_str = "hello_default_dict"

    test_default_dict = defaultdict(str)

    print(test_default_dict)

    for single_str in test_str:

        test_default_dict[single_str] = single_str

    print(test_default_dict)

    print(type(test_default_dict))

    for key, value in test_default_dict.items():

        print(type(test_default_dict[key]))

if __name__ == "__main__":

    test3()

输出:

defaultdict(<class 'str'>, {})

defaultdict(<class 'str'>, {'h': 'h', 'e': 'e', 'l': 'l', 'o': 'o', '_': '_', 'd': 'd', 'f': 'f', 'a': 'a', 'u': 'u', 't': 't', 'i': 'i', 'c': 'c'})

<class 'collections.defaultdict'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

<class 'str'>

综上我们可以发现经过指定的工厂函数,defaultdict里面的value类型会变为这个指定的数据类型

三、总结

1.defaultdict可以优化普通字典访问不存在的key带来的错误,返回默认值

2.指定工厂函数后,value可以转变为相应的数据类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode:相对名次(详解)

前言&#xff1a;内容包括-题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 目录 题目&#xff1a; 代码实现&#xff1a; 大致思路&#xff1a; 代码解读&#xff1a; part 1&#xff1a;开辟返回数组 part 2&#xff1a;score数组的每个元素及其下标…

视觉大模型DINOv2:自我监督学习的新领域

如果你对自监督学习感兴趣&#xff0c;可能听说过Facebook人工智能的DINO(无标签知识蒸馏)。我们在以前的文章中也介绍过它。DINOv2不仅是一个新版本而且带来了新的改进&#xff0c;并为判别性自监督学习设定了更高的标准。当然公司的名字也从Facebook变为了Meta。 本文将介绍…

成功打破 GPT-4 上限,新版 Claude 横空出世!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 前 OpenAI 团队成员在离职后&#xff0c;创办了 Anthropic 公司。今年 3 月份的时候&#xff0c;该公司推出一款名为 Claude 的应用&#xff0c;试图与 ChatGPT 一争高下。 一个多月过去了…

分享Python采集77个css3代码,总有一款适合您

分享Python采集77个css3代码&#xff0c;总有一款适合您 Python采集的77个css3代码下载链接&#xff1a;https://pan.baidu.com/s/13EiUDXOAZvvKmF2KGrivzA?pwdubb2 提取码&#xff1a;ubb2 两款漂亮的bootstrap分页样式 纯CSS3用户卡片设计效果 4种炫酷CSS3 loading预加…

第六十章 Unity 发布Web平台

WebGL 是一种用于在 Web 浏览器中渲染图形的 API&#xff0c;基于 OpenGL ES 图形库的功能。WebGL 1.0 大致与 OpenGL ES 2.0 功能相匹配&#xff0c;而 WebGL 2.0 大致与 OpenGL ES 3.0 功能相匹配。WebGL 构建选项允许 Unity 将内容发布为 JavaScript 程序&#xff0c;而这些…

FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「端口映射」(1)

大家好&#xff0c;我是晓星航。今天为大家带来的是面向对象编程相关的讲解&#xff01;&#x1f600; 文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Ngi…

ARM 处理器模式(二)

文章目录 ARM 处理器模式工作模式模式切换内核寄存器各个模式对应的内核寄存器 ARM 处理器模式 ARMv7-a 处理器共有 9 种工作模式 工作模式 User&#xff1a;用户模式&#xff0c;非特权模式&#xff0c;大部分程序运行的时候就处于此模式FIQ&#xff1a;快速中断模式&#x…

算法修炼之练气篇——练气二十二层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

Vue列表展示计数器【第二篇】

&#x1f331; 1、vue列表展示案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vueDemo02列表展示</title> </head> <body> <div id"xy"><!--原始展示方式…

2023最新CleanMyMac中文版系统清理优化工具

CleanMyMac中文版功能非常的强大&#xff0c;操作简单&#xff0c;使用起来高效快捷&#xff0c;软件自身拥有一个安全数据&#xff0c;且拥有一定的规格&#xff0c;CleanMyMac中文版能够确定软件能够正确选择和清理Mac垃圾文件&#xff0c;更加安全&#xff0c;可靠。一键快速…

thinkPhP6.0安装教程图解--PHP框架安装

ThinkPhP 6.0 安装 1.环境检查 首先&#xff0c;thinkphp6.0&#xff0c;要求php的环境是7.2.5及以上的&#xff0c;所以先检查自己的php环境是否符合要求。 在cmd命令窗口中输入php -v 或者没有配置环境变量的话&#xff0c;可以在php编辑器中输出php_info()或则PHP_VERSIO…

记录一次异常:feign异常--NoSuchBeanDefinitionException: No qualifying bean of type

1、完整报错 2023-06-29 16:17:28.127 WARN 3732 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyExcep…

JetCache 使用简单案例到源码解析读这一篇就够

背景 github.com/alibaba/jet… 一、使用方法&#xff1a; 1. 创建项目— 此处使用springboot项目 2. 引入starter <dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId><version>2…

Servlet3.0 新特性全解

Servlet3.0新特性全解 tomcat 7以上的版本都支持Servlet 3.0 Servlet 3.0 新增特性 注解支持&#xff1b;Servlet、Filter、Listener无需在web.xml中进行配置&#xff0c;可以通过对应注解进行配置&#xff1b;支持Web模块&#xff1b;Servlet异步处理&#xff1b;文件上传AP…

DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义

一、英文缩写 英文中文 DEV development开发 SIT System Integrate Test系统整合测试&#xff08;内测&#xff09; UAT User Acceptance Test用户验收测试 PET Performance Evaluation Test性能评估测试&#xff08;压测&#xff09; SIM simulation仿真 PRD/PROD produ…

我们花一个月调研了小红书种草的新机会和增长策略

分析师&#xff1a;Jane、彬超 编辑&#xff1a;yolo 出品&#xff1a;增长黑盒研究组 *本报告为增长黑盒独立研究系列&#xff0c; 与第三方不存在任何利益关系 随着618的临近&#xff0c;小红书再次成为了品牌重要的“营销战场”。面临着经济环境的不确定性&#xff0c;想必各…

数据结构_串

目录 1. 串的定义和实现 1.1 串的定义 1.2 串的存储结构 1.2.1 定长顺序存储表示 1.2.2 堆分配存储表示 1.2.3 块链存储表示 1.3 串的基本操作 2. 串的模式匹配 2.1 简单的模式匹配算法 2.2 串的模式匹配算法——KMP算法 2.2.1 字符串的前缀、后缀和部分匹配值 2.2…

你不知道的裁员攻略:真正的离职赔偿是2N起步,不是N+1!计算赔偿金时,年终奖要计入总收入!...

最近裁员现象猖獗&#xff0c;许多人都不知道如何维护自己的合法权益&#xff0c;在和公司撕扯时屡屡被坑。一位曾经和字节撕过且成功的网友&#xff0c;友情给大家写了一份离职攻略。但要注意&#xff0c;这份攻略只针对那些守规矩的大公司&#xff0c;如果是不守规矩的小公司…

得ChatGPT者,得智能客服天下?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在现代社会&#xff0c;高效、专业的客服服务已成为企业、组织机构竞争力的关键要素。智能客服系统应运而生&#xff0c;智能客服系统对客服的赋能作用和价值主要表现在提高效率、降低成本、优化用户体验、深度挖掘用户需求…

【综述】结构化剪枝

目录 摘要 分类 1、依赖权重 2、基于激活函数 3、正则化 3.1 BN参数正则化 3.2 额外参数正则化 3.3 滤波器正则化 4、优化工具 5、动态剪枝 6、神经架构搜索 性能比较 摘要 深度卷积神经网络&#xff08;CNNs&#xff09;的显著性能通常归因于其更深层次和更广泛的架…