详解Python 中的 defaultdict 数据类型

 更新时间:2021年02月22日 09:09:36   作者:火山&飘雪  
这篇文章主要介绍了Python 中的 defaultdict 数据类型,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

这篇文章给大家介绍Python 中的 defaultdict 数据类型,具体内容如下所示:

官方网址

首先,defaultdictdict 的一个子类。通常 Python 中字典(dict)这种数据类型是通过键值对来存取的,当索引一个不存在的键时,就会引发 keyerror 异常。那么,defaultdict 就可以解决这个问题,它可以实现为不存的键值返回一个默认值。

在这里插入图片描述

defaultdictcollections 包下的一个模块,defaultdict 在初始化时可以提供一个 default_factory 的参数,default_factory 接收一个工厂函数作为参数, 可以是 int、str、list 等内置函数,也可以是自定义函数。

用法实例如下:

示例一: 统计字符串中字母出现的个数。

from collections import defaultdict

s = 'mississippi'
d = defaultdict(int)
for k in s:
 d[k] += 1
print(d)

# 输出
# defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})

如果不用 defaultdict 的话,写法如下:

s = 'mississippi'
d = {}
for k in s:
 if k not in d:
  d[k] = 1
 else:
  d[k] = d[k] + 1
print(d)

# 输出
# {'m': 1, 'i': 4, 's': 4, 'p': 2}
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
 d[k].append(v)
print(d)

# 输出
# defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})

示例二: 使用 lambda 函数。

q = defaultdict(lambda: [0, 0, 0])
print(q['a'])

# 输出
# [0, 0, 0]

到此这篇关于Python 中的 defaultdict 数据类型的文章就介绍到这了,更多相关Python defaultdict 数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python优先队列实现方法示例

    Python优先队列实现方法示例

    这篇文章主要介绍了Python优先队列实现方法,结合实例形式分析了Python优先队列的具体定义与使用方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2017-09-09
  • python selenium操作cookie的实现

    python selenium操作cookie的实现

    这篇文章主要介绍了python selenium操作cookie的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python如何使用pywebview打造一个现代化的可视化GUI界面详解

    python如何使用pywebview打造一个现代化的可视化GUI界面详解

    pywebview是一个轻量级的跨平台库,它可以让你在Python程序中嵌入一个浏览器窗口,下面这篇文章主要给大家介绍了关于python如何使用pywebview打造一个现代化的可视化GUI界面的相关资料,需要的朋友可以参考下
    2024-07-07
  • python面向对象版学生信息管理系统

    python面向对象版学生信息管理系统

    这篇文章主要为大家详细介绍了python面向对象版学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • python海龟绘图实例教程

    python海龟绘图实例教程

    这篇文章主要介绍了python海龟绘图实例教程,需要的朋友可以参考下
    2014-07-07
  • PyTorch张量拼接、切分、索引的实现

    PyTorch张量拼接、切分、索引的实现

    在学习深度学习的过程中,遇到的第一个概念就是张量,张量在pytorch中的计算十分重要,本文主要介绍了PyTorch张量拼接、切分、索引的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • pandas.DataFrame.drop_duplicates 用法介绍

    pandas.DataFrame.drop_duplicates 用法介绍

    这篇文章主要介绍了pandas.DataFrame.drop_duplicates 用法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python 编码Basic Auth使用方法简单实例

    Python 编码Basic Auth使用方法简单实例

    这篇文章主要介绍了 Python 编码Basic Auth使用方法简单实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • Python异步与定时任务提高程序并发性和定时执行效率

    Python异步与定时任务提高程序并发性和定时执行效率

    Python异步与定时任务是Python编程中常用的两种技术,异步任务可用于高效处理I/O密集型任务,提高程序并发性;定时任务可用于定时执行计划任务,提高程序的执行效率。这两种技术的应用有助于提升Python程序的性能和效率
    2023-05-05
  • python机器学习基础特征工程算法详解

    python机器学习基础特征工程算法详解

    这篇文章主要为大家介绍了python机器学习基础特征工程的算法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11

最新评论