Módulo de Coleta de
coleções Python é uma coleção de built-in módulo que fornece muitas coleções úteis.
>>> import collections
classe contador
Counter
É uma ajuda para a contagem objeto Hashable dict subclasse . É uma colecção não ordenada de elementos em que o objecto de armazenamento é fundamental dicionário Hashable, armazena o valor da contagem do mesmo dicionário, a contagem pode ser qualquer número inteiro, incluindo o zero e negativo.
Contador exemplo : Bate a certos aparece palavra no arquivo de licença Python.
>>> from collections import Counter
>>> import re
>>> path = '/usr/lib/python3.5/LICENSE.txt'
>>> words = re.findall('\w+', open(path).read().lower())
>>> Counter(words).most_common(10)
[('the', 80), ('or', 78), ('1', 66), ('of', 61), ('to', 50), ('and', 48), ('python', 46), ('in', 38), ('license', 37), ('any', 37)]
Objecto Contador elements()
método, que retorna a sequência, contando o número de repetidas seguindo o mesmo elemento, a ordem dos elementos está desordenada.
>>> c = Counter(a=4, b=2, c=0, d=-2)
>>> list(c.elements())
['b','b','a', 'a', 'a', 'a']
most_common()
Retorna os elementos mais comuns e sua contagem, a ordem de mais comum para menos
>>> Counter('abracadabra').most_common(3)
[('a', 5), ('r', 2), ('b', 2)]
classe defaultdict
defaultdict
É construído dict
subclasse da classe que substitui um método e adiciona uma variável exemplo gravável. As funções restantes do mesmo dicionário.
Usando a mesma função defaultdict
do que o dict.setdefault
método mais rápido.
>>> from collections import defaultdict
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
... d[k].append(v)
...
>>> d.items()
dict_items([('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])])
Pode ver que mesmo defaultdict objetos de uma chave não existe, ele irá criar automaticamente uma lista vazia.
classe namedtuple
Chamado tupla tupla ajuda a dar sentido a cada local, e tornar o código mais legível e natureza auto-documentar.
Criar uma tupla chamado para mostrar para o local de gravação de informações para cada tupla:
>>> from collections import namedtuple
>>> Point = namedtuple('Point', ['x', 'y']) # 定义命名元组
>>> p = Point(10, y=20) # 创建一个对象
>>> p
Point(x=10, y=20)
>>> p.x + p.y
30
>>> p[0] + p[1] # 像普通元组那样访问元素
30
>>> x, y = p # 元组拆封
>>> x
10
>>> y
20
Fonte: construção de laboratório