Python collections.defaultdict

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-11-03 22:03:59

Python collections.defaultdict的相关文章

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

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

Python collections.defaultdict 笔记

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

[转载]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 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,collections模块

对collections相关方法进行学习和测试: # coding=utf-8 """ testCollections.py 对collections集合模块进行实践和测试 """ import collections import unittest class TestCollections(unittest.TestCase): def test_namedtuple(self): """ namedtuple是

Python collections模块总结

Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用. collections ChainMap 这是一个为多个映射创建单一视图的类字典类型,也就是说,它同样具有字典类型的方法,它比基础数据结构中的字典的创建和多次更新要快,需要注意的是,增删改的操作都只会针对该对象的第一个字典,其余字典不会发生改变,但是如果是查找,则会在多个字典中查找,直到找到第一个出现的key为止. 特有方法 解释 maps 返

Python collections类

c = Counter('abcdeabcdabcaba') import collectionsc = collections.Counter('abcdeabcdabcaba')print (c) 结果:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})结论:统计字符串出现的次数 import collectionsc = collections.Counter('abcdeabcdabcaba')print (c) ret = c.most_