Như câu trả lời khác đã nêu, dict là một lời gọi hàm. Nó có ba dạng cú pháp.
Hình thức:
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
Các phím (hoặc name
như được sử dụng trong trường hợp này) phải có giá trị Python identifiers, và ints không hợp lệ.
Hạn chế không chỉ là chức năng dict
Bạn có thể chứng minh nó như vậy:
>>> 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
Tuy nhiên, có hai hình thức cú pháp khác của bạn có thể sử dụng.
Có:
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
Ví dụ:
>>> dict([(1,'one'),(2,2)])
{1: 'one', 2: 2}
Và từ một ánh xạ:
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
Ví dụ:
>>> dict({1:'one',2:2})
{1: 'one', 2: 2}
.210
Trong khi đó không có vẻ như nhiều (một dict từ một dict đen) ghi nhớ rằng Counter và defaultdict là ánh xạ và đây là cách bạn sẽ bí mật là một trong những để một 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}