Como otra respuesta han declarado, dict es una llamada a la función. Tiene tres formas sintácticas.
la forma:
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
Las teclas (o name
tal como se utiliza en este caso) debe ser válido Python identifiers, y ints no son válidas.
La limitación es no sólo la función dict
Usted puede demostrar que de este modo:
>>> def f(**kw): pass
...
>>> f(one=1) # this is OK
>>> f(1=one) # this is not
File "<stdin>", line 1
SyntaxError: keyword can't be an expression
Sin embargo, existen otras dos formas sintácticas de que puede utilizar.
No:
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
Ejemplo:
>>> dict([(1,'one'),(2,2)])
{1: 'one', 2: 2}
Y a partir de una cartografía:
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
Ejemplo:
>>> dict({1:'one',2:2})
{1: 'one', 2: 2}
Mientras que puede no parecer mucho (un diccionario de un diccionario literal) tener en cuenta que Counter y defaultdict son asignaciones y esto es lo que le encubierta uno de los que un diccionario:
>>> from collections import Counter
>>> Counter('aaaaabbbcdeffff')
Counter({'a': 5, 'f': 4, 'b': 3, 'c': 1, 'e': 1, 'd': 1})
>>> dict(Counter('aaaaabbbcdeffff'))
{'a': 5, 'c': 1, 'b': 3, 'e': 1, 'd': 1, 'f': 4}