python中defaultdict字典功能特性解析

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

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

不同于普通的字典,其特性在于,当用一个defaultdict中不存在的键来调用时,不会报KeyError错误
以调取’a’键的值为例:

print(dedict['a'])

此键的值默认为零。这是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'])

程序运行结果如下。

可以看出,不存在的键的默认值为 传入 类 的 默认实例对象。
默认值的布尔值通常为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字典功能特性解析的文章就介绍到这了,更多相关python defaultdict字典内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python中defaultdict的用法详解

    初识defaultdict 之前在使用字典的时候, 用的比较随意, 只是简单的使用dict. 然而这样在使用不存在的key的时候发生KeyError这样的一个报错, 这时候就该defaultdict登场了. 如何使用defaultdict 可以这样 from collections import defaultdict d1 = defaultdict(int) 或者这样 import collections d1 = collections.defaultdict(int) defaultdi

  • 在Python中使用defaultdict初始化字典以及应用方法

    Python中可以使用collections中的defaultdict类实现创建进行统一初始化的字典.这里总结两种常用一点的初始化方式,分别是初始化为list和int. 初始化为list示范代码: #!/usr/bin/python from collectionsimport defaultdict s = [('yellow',1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] d =defaultdict(list) for k

  • Python dict和defaultdict使用实例解析

    先看一个需求 from collections import defaultdict """ 需求: 统计user_list中字母出现的次数 """ user_dict = {} user_list = ['A', 'B', 'C', 'A', 'C', 'C'] # 第一种方式 for item in user_list: if item not in user_dict: user_dict[item] = 1 else: user_dict

  • 详解Python 中的 defaultdict 数据类型

    这篇文章给大家介绍Python 中的 defaultdict 数据类型,具体内容如下所示: 官方网址 首先,defaultdict 是 dict 的一个子类.通常 Python 中字典(dict)这种数据类型是通过键值对来存取的,当索引一个不存在的键时,就会引发 keyerror 异常.那么,defaultdict 就可以解决这个问题,它可以实现为不存的键值返回一个默认值. defaultdict是 collections 包下的一个模块,defaultdict 在初始化时可以提供一个 defa

  • python中defaultdict字典功能特性解析

    defaultdict是普通字典dict的一个子类.通过collections库的defaultdict()方法创建.defaultdict()需要传入的参数为 类名.(type类型)首先,以int类 作为参数传入为例, from collections import defaultdict dedict = defaultdict(int) print(dedict) 不同于普通的字典,其特性在于,当用一个defaultdict中不存在的键来调用时,不会报KeyError错误以调取’a’键的值

  • python中defaultdict字典功能特性介绍

    defaultdict是普通字典dict的一个子类.通过collections库的defaultdict()方法创建.defaultdict()需要传入的参数为 类名.(type类型)首先,以int类 作为参数传入为例, from collections import defaultdict dedict = defaultdict(int) print(dedict) 不同于普通的字典,其特性在于,当用一个defaultdict中不存在的键来调用时,不会报KeyError错误 以调取’a’键的

  • python 中defaultdict()对字典进行初始化的用法介绍

    目录 用法讲解: 1. 不使用defaultdict(): 2. 使用defaultdict(): 用法讲解: 一般情况下,在使用字典时,先定义一个空字典(如dict_a = {}),然后往字典中添加元素只需要 dict_a[key] = value即可.读取字典中的元素时同理,但前提时字典中存在这个key,否则就会报错. 而defaultdict()的作用在于,即使字典中的key不存在,在查找时也会对它的value赋予一个默认值,从而避免了报错. 具体来说,defaultdict接受一个工厂函

  • Python中defaultdict与lambda表达式用法实例小结

    本文实例讲述了Python中defaultdict与lambda表达式用法.分享给大家供大家参考,具体如下: 从教程中看到defaultdict是一个类,在一台装有Python2.7.6的电脑上使用发现不存在.在文档中搜索了一下也没有找到,想当然以为这或许是Python 3.X专有的.因为教程就是基于Python 3.X实现的.后来换了一台装有Python 3.X的电脑依然出问题. 求助于网络,发现这个类其实是collections模块中的一个类.看来,学习很难摆脱网络环境啊! 这个类是dict

  • Python中defaultdict与dict的差异详情

    目录 一.问题描述 二.解决方案 三.结语 本文转自微信公众号:"算法与编程之美", 一.问题描述 在collections模块中的defauldict使用时与dict有何不同,为何我们用dict中的key值不存在时会报错,而defaudict不会报错,下面做出解答. 二.解决方案 以解决遇到的问题用来解答. 代码示例: import collections //引用collections模块 dic=collections.defaultdict(int) //利用模块中的defau

  • python中defaultdict用法实例详解

    目录 defaultdict底层代码: setdefault()和defaultdict()的区别: setdefault() defaultdict() 总结 defaultdict底层代码: 在字典中查找某个值时,若key不存在时则会返回一个KeyError错误而不是一个默认值,这时候可以使用defaultdict函数. 注意:使用dict[key]=value时,若key不存在则报错:使用dict.get(key)时,若key不存在则会返回一个默认值. defaultdict接受一个工厂函

  • Python中对字典的几个处理方法分享

    目录 字典求和 列表剔重并计数 获取字典中最大的value 获取字典中出现value最大的key 字典对应元素追加 字典对应元素追加并剃重 对字典进行过滤 反转字典的方法(字典的key和value对换) 合并字典 字典求和 edge_weights = defaultdict(lambda: defaultdict(float)) for idx,node in enumerate(graph.nodes()): node2com[node] = idx #给每一个节点初始化赋值一个团id fo

  • python中defaultdict方法的使用详解

    目录 默认值可以很方便 使用判断语句检查 使用dict.setdefault()方法 使用collections.defaultdict类 defaultdict类是如何实现的 在旧版本的Python中实现类defaultdict的功能 默认值可以很方便 众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常方便的.例如下面的例子: strings =

  • Python中enumerate函数代码解析

    enumerate函数用于遍历序列中的元素以及它们的下标. enumerate函数说明: 函数原型:enumerate(sequence, [start=0]) 功能:将可循环序列sequence以start开始分别列出序列数据和数据下标 即对一个可遍历的数据对象(如列表.元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标. 举例说明: 存在一个sequence,对其使用enumerate将会得到如下结果: start        sequence[0]

  • Python中创建字典的几种方法总结(推荐)

    1.传统的文字表达式: >>> d={'name':'Allen','age':21,'gender':'male'} >>> d {'age': 21, 'name': 'Allen', 'gender': 'male'} 如果你可以事先拼出整个字典,这种方式是很方便的. 2.动态分配键值: >>> d={} >>> d['name']='Allen' >>> d['age']=21 >>> d[

随机推荐