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
投稿

猜你喜欢

  • pyinstaller打包django项目的实现步骤

    2022-08-17 14:28:15
  • 自动更新程序的设计框架

    2009-08-12 13:00:00
  • sql数据库批量处理脚本

    2011-11-03 17:23:19
  • 你的网页“面目全非”过吗?

    2010-07-02 16:24:00
  • jQuery 取得 background-position 的值

    2009-04-05 16:02:00
  • 详解Python list 与 NumPy.ndarry 切片之间的对比

    2023-02-16 10:25:23
  • Python selenium模拟网页点击爬虫交管12123违章数据

    2023-09-26 18:30:37
  • 节日快乐! Python画一棵圣诞树送给你

    2022-06-11 07:53:09
  • 几个javascript特效代码

    2010-04-23 20:39:00
  • 进行数据处理的6个 Python 代码块分享

    2022-10-21 12:56:18
  • 奇淫技巧之图片切割

    2010-09-21 13:24:00
  • 在pytorch中计算准确率,召回率和F1值的操作

    2022-02-13 18:06:40
  • OpenCV形状检测的示例详解

    2023-11-11 06:17:14
  • python3的pip路径在哪

    2023-01-27 14:15:39
  • python实现批量监控网站

    2023-07-22 20:41:08
  • CSS样式设计技巧十则

    2008-06-04 12:18:00
  • Python Pandas基础操作详解

    2022-02-18 11:17:07
  • python中multiprosessing模块的Pool类中的apply函数和apply_async函数的区别

    2023-03-21 20:23:37
  • 深入浅析Python代码规范性检测

    2023-08-23 21:16:55
  • CSS资料中常见英语词语翻译整理

    2008-08-29 12:50:00
  • asp之家 网络编程 m.aspxhome.com