Python基础语法中defaultdict的使用小结

 更新时间:2025年04月11日 11:15:10   作者:大神神奇奇奇  
Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要介绍了Python基础语法中defaultdict的使用小结,感兴趣的可以了解一下

Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,但有一个关键的不同点:当访问一个不存在的键时,defaultdict不会抛出KeyError异常,而是会自动为该键创建一个默认值。这种特性使得在处理需要初始化新键的情况时更加方便。

创建defaultdict要使用defaultdict,首先需要从collections模块导入它:

from collections import defaultdict

然后可以创建一个defaultdict实例,传入一个可调用对象作为default_factory参数。
这个可调用对象决定了当访问不存在的键时应该返回的默认值类型。
例如:

  • 使用int作为default_factory将返回整数0
  • 使用list作为default_factory将返回空列表[]
  • 使用set作为default_factory将返回空集合set()
  • 使用自定义函数作为default_factory将根据该函数的返回值来确定默认值。

示例1

from collections import defaultdict

bag = ['apple', 'orange', 'cherry', 'apple','apple', 'cherry', 'blueberry']
count = defaultdict(int)  # 使用int作为default_factory
print(f"\n > > > > > > count:\n {count}")
print(f"\n > > > > > > type(count):\n {type(count)}")

for fruit in bag:
    count[fruit] += 1
print(f"\n > > > > > > count:\n {count}")

输出:

 > > > > > > count:
 defaultdict(<class 'int'>, {})

 > > > > > > type(count):
 <class 'collections.defaultdict'>

 > > > > > > count:
 defaultdict(<class 'int'>, {'apple': 3, 'orange': 1, 'cherry': 2, 'blueberry': 1})

在这个例子中,对一个不存在的键进行操作时,defaultdict会自动为该键分配一个默认值0,并允许直接对其进行递增操作。

示例2

from collections import defaultdict

names = [('group1', 'Alice'), ('group2', 'Bob'), ('group1', 'Charlie')]
grouped_names = defaultdict(list)
print(f"\n > > > > > > grouped_names:\n {grouped_names}")
print(f"\n > > > > > > type(grouped_names):\n {type(grouped_names)}")

for group, name in names:
    grouped_names[group].append(name)

print(f"\n > > > > > > grouped_names:\n {grouped_names}")

输出:

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

 > > > > > > type(grouped_names):
 <class 'collections.defaultdict'>

 > > > > > > grouped_names:
 defaultdict(<class 'list'>, {'group1': ['Alice', 'Charlie'], 'group2': ['Bob']})

在这个例子中,根据第一个元素对名字进行了分组。如果使用普通字典,则需要额外的逻辑来检查和初始化每个新组。

到此这篇关于Python基础语法中defaultdict的使用小结的文章就介绍到这了,更多相关Python defaultdict内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python exe文件解包方法总结

    python exe文件解包方法总结

    这篇文章总结了如何从Python EXE文件中提取和反编译Python脚本(.pyc文件)的过程,包括使用pyinstxtractor.py或archive_viewer.py进行解包,感兴趣的小伙伴跟着小编一起来看看吧
    2025-03-03
  • 使用python爬取微博数据打造一颗“心”

    使用python爬取微博数据打造一颗“心”

    这篇文章主要介绍了使用python基于微博数据打造一颗“心”,作为程序员,我准备了一份特别的礼物,用以往发的微博数据打造一颗“爱心”,我想她一定会感动得哭了吧,需要的朋友可以参考下
    2019-06-06
  • 用Python登录Gmail并发送Gmail邮件的教程

    用Python登录Gmail并发送Gmail邮件的教程

    这篇文章主要介绍了用Python登录Gmail并发送Gmail邮件的教程,利用了Python的SMTP库,代码非常简单,需要的朋友可以参考下
    2015-04-04
  • Python CSV 文件解析和生成方法示例

    Python CSV 文件解析和生成方法示例

    这篇文章主要为大家介绍了Python CSV 文件的解析和生成方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 使用pyqt5 实现ComboBox的鼠标点击触发事件

    使用pyqt5 实现ComboBox的鼠标点击触发事件

    这篇文章主要介绍了使用pyqt5 实现ComboBox的鼠标点击触发事件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 用Python的urllib库提交WEB表单

    用Python的urllib库提交WEB表单

    上次实现的校园网IP网关登录器其中一个关键部分就是提交登录网页的表单,下面是我的Python实现代码
    2009-02-02
  • mac下pycharm设置python版本的图文教程

    mac下pycharm设置python版本的图文教程

    今天小编就为大家分享一篇mac下pycharm设置python版本的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 详解Python开发语言中的基本数据类型

    详解Python开发语言中的基本数据类型

    数据类型想必大家都知道是什么含义,指的是输入数据的类型,任何数据都有明确的数据类型。本文主要和大家聊聊Python的三种基本数据类型,感兴趣的可以了解一下
    2022-10-10
  • Python 安装setuptools和pip工具操作方法(必看)

    Python 安装setuptools和pip工具操作方法(必看)

    下面小编就为大家带来一篇Python 安装setuptools和pip工具操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Python Collections库的高级功能使用示例详解

    Python Collections库的高级功能使用示例详解

    Python的collections库提供了一系列有用的数据类型,扩展了内建的数据类型,为开发者提供了更多高级功能,本文将深入探讨collections库的一些高级功能,通过详细的示例代码演示,帮助大家更好地理解和应用这些功能
    2023-12-12

最新评论