python中defaultdict字典功能特性介绍

作者:侯小啾 时间:2022-06-07 23:27:45 

defaultdict是普通字典dict的一个子类。通过collections库的defaultdict()方法创建。
defaultdict()需要传入的参数为 类名。(type类型)
首先,以int类 作为参数传入为例,

from collections import defaultdict
dedict = defaultdict(int)
print(dedict)

python中defaultdict字典功能特性介绍

不同于普通的字典,其特性在于,当用一个defaultdict中不存在的键来调用时,不会报KeyError错误

以调取’a’键的值为例:

print(dedict['a'])

python中defaultdict字典功能特性介绍

此键的值默认为零。这是defaultdict()参数为int的情况,参数不同,默认值也不同。

defaultdict()需要传入的参数为 类名。(type类型)

传入其他类,来创建defaultdict(),效果如下:

from collections import defaultdict

dedict1 = defaultdict(list)
dedict2 = defaultdict(set)
dedict3 = defaultdict(dict)
dedict4 = defaultdict(tuple)
dedict5 = defaultdict(int)
dedict6 = defaultdict(float)
dedict7 = defaultdict(str)

# 创建一个什么用都没有的类
class A(object):
    pass

# 传入可用!
dedict8 = defaultdict(A)

print(dedict1['a'])
print(dedict2['a'])
print(dedict3['a'])
print(dedict4['a'])
print(dedict5['a'])
print(dedict6['a'])
print(dedict7['a'])
print(dedict8['a'])

程序运行结果如下:

python中defaultdict字典功能特性介绍

可以看出,不存在的键的默认值为 传入 类 的 默认实例对象。
默认值的布尔值通常为False,但也不一定。
是否为False跟类有关,如此处的通过A类的布尔值就为True。

甚至,还可以套娃:

dedict9 = defaultdict(defaultdict)
print(dedict9['a'])

defaultdict常用于统计多个目标数据的个数,并存储在defaultdict字典中。

示例如下:

from collections import defaultdict

bag = ["cheese", "Bread", "apple", "Bread", "orange", "cheese", 'apple',"milk", "apple", "bananas", "milk"]
count = defaultdict(int)
for item in bag:
    count[item] += 1
print(count)

python中defaultdict字典功能特性介绍

来源:https://skylarkprogramming.blog.csdn.net/article/details/122839482

标签:python,defaultdict,字典
0
投稿

猜你喜欢

  • 如何使数据库中取出的数据保持原有格式

    2008-11-27 16:16:00
  • MySQL内部临时表的具体使用

    2024-01-20 13:09:54
  • PyQt5实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果

    2021-12-21 05:40:39
  • Python实现自定义读写分离代码实例

    2023-04-19 14:34:57
  • Python面向对象特殊属性及方法解析

    2022-05-19 15:16:06
  • MySQL查询优化之索引的应用详解

    2024-01-12 14:14:38
  • MySQL Version确认问题(版本确认)

    2024-01-19 15:20:47
  • 浅析python的优势和不足之处

    2021-06-11 02:33:20
  • python基础之贪婪模式与非贪婪模式

    2023-01-18 04:14:36
  • Vue elementUI 自定义表单模板组件功能实现

    2023-07-02 16:37:46
  • MySQL使用ReplicationConnection导致连接失效解决

    2024-01-19 11:04:26
  • numpy的Fancy Indexing和array比较详解

    2022-05-12 23:31:46
  • python绘制已知点的坐标的直线实例

    2023-03-12 08:36:11
  • win2003服务器下配置 MySQL 群集(Cluster)的方法

    2024-01-24 17:46:46
  • C#利用ODP.net连接Oracle数据库的操作方法

    2024-01-27 03:17:26
  • Python记录详细调用堆栈日志的方法

    2023-11-16 17:20:57
  • 简单的淡入淡出图片轮换效果

    2009-05-22 18:38:00
  • 用代码帮你了解Python基础(2)

    2022-01-04 23:42:40
  • SQLSERVER 时间格式大全

    2024-01-28 12:13:33
  • 简单了解python装饰器原理及使用方法

    2023-11-02 11:55:02
  • asp之家 网络编程 m.aspxhome.com