defaultdict
to call the default default [giá trị được trả về] ở phía trước khi container được khởi động. "Nội dung chính
- default
- Cách sử dụng defaultdict
- Nhập defaultdict
- Khởi tạo defaultdict
- Nó làm việc như thế nào
- Ví dụ trong câu hỏi
as được định nghĩa bởi Doug Hellmann trong Thư viện tiêu chuẩn Python theo ví dụ
Cách sử dụng defaultdict
Nhập defaultdict
>>> from collections import defaultdict
Khởi tạo defaultdict
Khởi tạo nó bằng cách vượt qua
có thể gọi là đối số đầu tiên của nó [bắt buộc]
>>> d_int = defaultdict[int]
>>> d_list = defaultdict[list]
>>> def foo[]:
... return 'default value'
...
>>> d_foo = defaultdict[foo]
>>> d_int
defaultdict[, {}]
>>> d_list
defaultdict[, {}]
>>> d_foo
defaultdict[, {}]
** kwargs là đối số thứ hai của nó [tùy chọn]
>>> d_int = defaultdict[int, a=10, b=12, c=13]
>>> d_int
defaultdict[, {'a': 10, 'c': 13, 'b': 12}]
or is
>>> kwargs = {'a':10,'b':12,'c':13}
>>> d_int = defaultdict[int, **kwargs]
>>> d_int
defaultdict[, {'a': 10, 'c': 13, 'b': 12}]
Nó làm việc như thế nào
Là một lớp con của từ điển chuẩn, nó có thể thực hiện tất cả các chức năng tương tự
Tuy nhiên, trong trường hợp truyền một từ khóa không xác định, nó sẽ trả về giá trị mặc định thay vì lỗi. Ví dụ.
>>> d_int['a']
10
>>> d_int['d']
0
>>> d_int
defaultdict[, {'a': 10, 'c': 13, 'b': 12, 'd': 0}]
Trong trường hợp bạn muốn thay đổi giá trị mặc định, hãy ghi đè default_factory
>>> d_int.default_factory = lambda: 1
>>> d_int['e']
1
>>> d_int
defaultdict[, {'a': 10, 'c': 13, 'b': 12, 'e': 1, 'd': 0}]
or is
>>> def foo[]:
... return 2
>>> d_int.default_factory = foo
>>> d_int['f']
2
>>> d_int
defaultdict[, {'a': 10, 'c': 13, 'b': 12, 'e': 1, 'd': 0, 'f': 2}]
Ví dụ trong câu hỏi
ví dụ 1
Vì int đã được truyền dưới dạng default_factory, bất kỳ từ khóa nào không xác định sẽ trả về 0 theo mặc định
Bây giờ khi chuỗi được truyền trong vòng lặp, nó sẽ tăng số lượng bảng chữ cái đó trong d
>>> s = 'mississippi'
>>> d = defaultdict[int]
>>> d.default_factory
>>> for k in s:
... d[k] += 1
>>> d.items[]
[['i', 4], ['p', 2], ['s', 4], ['m', 1]]
>>> d
defaultdict[, {'i': 4, 'p': 2, 's': 4, 'm': 1}]
Ví dụ 2
Vì một danh sách đã được truyền dưới dạng default_factory, bất kỳ từ khóa nào không xác định [không tồn tại] nào sẽ trả về [] [tức là danh sách] theo mặc định
Bây giờ khi danh sách các bộ dữ liệu được truyền trong vòng lặp, nó sẽ kết nối các giá trị bổ sung trong d [color]