Python collections.defaultdict 笔记

其实defaultdict 就是一个字典,只不过python自动的为它的键赋了一个初始值。这也就是说,你不显示的为字典的键赋初值python不会报错,看下实际例子。

比如你想计算频率

frequencies = {}
for word in wordlist:
    frequencies[word] += 1

python会抛出一个KeyError 异常,因为字典索引之前必须初始化,可以用下面的方法解决

for word in wordlist:
    try:
        frequencies[word] += 1
    except KeyError:
        frequencies[word] = 1
for word in wordlist:
    if word in frequencies:
        frequencies[word] += 1
    else:
        frequencies[word] = 1

当然,collections.defaultdict也可以轻松的解决这个问题

from collections import defaultdict
frequencies = defaultdict(int) #传入int()函数来初始化
for word in wordlist:
    frequencies[word] += 1

collections.defaultdict可以接受一个函数作为参数来初始化。什么意思呢,看上面的例子,我们想要frequencies[word]初始化为0,这时就可以用一个int()函数作为参数出给defaultdict,我们不带参数调用int(),int()就会返回一个0值

时间: 2024-10-10 16:16:34

Python collections.defaultdict 笔记的相关文章

Python collections.defaultdict

Python collections.defaultdict 笔记 其实defaultdict 就是一个字典,只不过python自动的为它的键赋了一个初始值.这也就是说,你不显示的为字典的键赋初值python不会报错,看下实际例子. 比如你想计算频率 frequencies = {} for word in wordlist: frequencies[word] += 1 python会抛出一个KeyError 异常,因为字典索引之前必须初始化,可以用下面的方法解决 for word in wo

Python collections.defaultdict() 与 dict的使用和区别

在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collections.defaultdict()经常被用到.主要说说这个东西. 综述: 这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值.比如default(int)则创建一个类似dictionary对象,里面任何的values都是in

python collections.Counter笔记

Counter是dict的子类,所以它其实也是字典.只不过它的键对应的值都是计数,值可以是任意整数.下面是四种创建Counter实例的例子: >>> c = Counter() # a new, empty counter >>> c = Counter('gallahad') # a new counter from an iterable >>> c = Counter({'red': 4, 'blue': 2}) # a new counter

[转载]Python 3 collections.defaultdict() 与 dict的使用和区别

文章转自: http://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html Python 3 collections.defaultdict() 与 dict的使用和区别 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collections.defaultdict()经常被用到.主要说说这个东西. 综述: 这里的defaultdict(function_factory)构建的是一个类似dict

python核心编程--笔记

python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后

python collections 模块

collections 模块里有一些比较好用的类型,是一些基础类型的扩展,是必要会的模块之一 Counter (计数器) 可以追踪值出现的次数,且是由大到小排列出来 >>> import collections >>> c1 = collections.Counter('adadwefffcvcc') >>> c1 Counter({'c': 3, 'f': 3, 'a': 2, 'd': 2, 'e': 1, 'w': 1, 'v': 1}) 2.O

python中defaultdict方法的使用

默认值可以很方便 众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常方便的.例如下面的例子: strings = ('puppy', 'kitten', 'puppy', 'puppy', 'weasel', 'puppy', 'kitten', 'puppy') counts = {} for kw in strings: counts[kw]

关于python的defaultdict

原文地址:http://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html 作者首先看了看defaultdict的help解释,作者看了解释并且把英文翻译出来后,发现还是看不懂. 后面直接通过看示例看明白的.发现作者是挺风趣幽默的. 下面贴出,defaultdict() , setdefault和普通的 {} 代码 defaultdict和setdefault相比较,defaultdict的效率会高一些. 而普通的{}只能做赋值操作(因

Python映射类型--笔记

<Python3程序开发指南> 映射:键-值数据项的组合 Python3支持两种无序的映射类型:内置的dict类型.标准库中的collections.defaultdict类型. Python3.1中引入了有序的映射类型:collections.OrderedDict,与内置dict有相同的方法和属性,但在存储数据时以插入顺序进行. 键:可哈希运算的对象的对象引用:值:任意类型对象的对象引用 使用字典字面值创建 >>> d1=dict({"id":1948