Jak inni odpowiedź, dict jest wywołanie funkcji. Ma trzy formy syntaktyczne.
postać:
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
Klucze (lub name
, użyte w tym przykładzie) musi być ważne Pythona identifiers i typu int nie są prawidłowe.
Ograniczenie to nie tylko funkcja dict
Można wykazać go tak:
>>> 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
Jednakże istnieją dwie inne formy składniowe można użyć.
Istnieje:
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
przykład:
>>> dict([(1,'one'),(2,2)])
{1: 'one', 2: 2}
A z mapowania:
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
przykład:
>>> dict({1:'one',2:2})
{1: 'one', 2: 2}
Mimo, że nie może wydawać się dużo (dict od dict dosłownym) należy pamiętać, że Counter i defaultdict są mapowania i to w jaki sposób przekształcać jedną z tych, do dict:
>>> 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}