A função int se chama por int(), certo? Porque ao colocar dentro do defaultdict colocamos somente int e não int()?
aparicoes = defaultdict(int)?
A função int se chama por int(), certo? Porque ao colocar dentro do defaultdict colocamos somente int e não int()?
aparicoes = defaultdict(int)?
Ricardo,
Eu li os exemplos nos documentação do Python:
>>> from collections import defaultdict
>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
... d[k] += 1
...
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]
e
>>> 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()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
os parâmetros int e list dependendo do seu caso de uso. Normalmente, um dicionário Python lança a KeyError se você tentar obter um item com uma chave que não está atualmente no dicionário. Por outro lado, defaultdict simplesmente criará quaisquer itens que você tentar acessar (desde que eles ainda não existam). Para criar um item "padrão", ele chama o objeto de função que você passa para o construtor (mais precisamente, é um objeto "callables" arbitrário, que inclui objetos de função e tipo). Para o primeiro exemplo, os itens padrão são criados usando int() que retornará o objeto inteiro 0. Para o segundo exemplo, os itens padrão são criados usando list() que retorna um novo objeto de lista vazio.
int - um tipo numérico
int() - um método que retorna um objeto inteiro de qualquer número ou string