chính sách

Báo cáo vấn đề Xem nguồn Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

dict là một kiểu tích hợp sẵn, biểu thị một mối liên kết hoặc từ điển. Từ điển hỗ trợ lập chỉ mục bằng cách sử dụng d[k] và kiểm thử tư cách thành viên khoá bằng cách sử dụng k in d; cả hai thao tác đều mất thời gian không đổi. Từ điển chưa cố định có thể thay đổi và có thể được cập nhật bằng cách chỉ định cho d[k] hoặc bằng cách gọi một số phương thức nhất định. Từ điển có thể lặp lại; quá trình lặp lại sẽ tạo ra chuỗi khoá theo thứ tự chèn. Thứ tự lặp lại không bị ảnh hưởng khi bạn cập nhật giá trị được liên kết với một khoá hiện có, nhưng sẽ bị ảnh hưởng khi bạn xoá rồi chèn lại một khoá.

d = {0: "x", 2: "z", 1: "y"}
[k for k in d]  # [0, 2, 1]
d.pop(2)
d[0], d[2] = "a", "b"
0 in d, "a" in d  # (True, False)
[(k, v) for k, v in d.items()]  # [(0, "a"), (1, "y"), (2, "b")]

Có 4 cách để tạo từ điển:

  1. Biểu thức từ điển {k: v, ...} tạo ra một từ điển mới có các mục khoá/giá trị được chỉ định, được chèn theo thứ tự xuất hiện trong biểu thức. Quá trình đánh giá sẽ thất bại nếu có hai biểu thức khoá cho ra cùng một giá trị.
  2. Một biểu thức tạo từ điển {k: v for vars in seq} tạo ra một từ điển mới mà mỗi cặp khoá/giá trị được chèn theo thứ tự lặp vòng lặp. Cho phép trùng lặp: lần chèn đầu tiên của một khoá nhất định sẽ xác định vị trí của khoá đó trong chuỗi và lần chèn cuối cùng sẽ xác định giá trị được liên kết của khoá đó.
    {k: v for k, v in (("a", 0), ("b", 1), ("a", 2))}  # {"a": 2, "b": 1}
    {i: 2*i for i in range(3)}  # {0: 0, 1: 2, 2: 4}
    
  3. Lệnh gọi đến hàm dict tích hợp sẵn sẽ trả về một từ điển chứa các mục được chỉ định, được chèn theo thứ tự đối số, đối số vị trí trước đối số có tên. Tương tự như comprehensions, bạn có thể sử dụng các khoá trùng lặp.
  4. Biểu thức hợp nhất x | y tạo ra một từ điển mới bằng cách kết hợp hai từ điển hiện có. Nếu hai từ điển có chung một khoá k, thì giá trị của khoá trong từ điển ở phía bên phải (nói cách khác là y[k]) sẽ được ưu tiên. Biến thể |= của toán tử hợp nhất sẽ sửa đổi một từ điển tại chỗ. Ví dụ:
    d = {"foo": "FOO", "bar": "BAR"} | {"foo": "FOO2", "baz": "BAZ"}
    # d == {"foo": "FOO2", "bar": "BAR", "baz": "BAZ"}
    d = {"a": 1, "b": 2}
    d |= {"b": 3, "c": 4}
    # d == {"a": 1, "b": 3, "c": 4}

Hội viên

xóa

None dict.clear()

Xoá tất cả các mục khỏi từ điển.

get

unknown dict.get(key, default=None)

Trả về giá trị cho key nếu key có trong từ điển, nếu không thì trả về default. Nếu bạn không cung cấp default, thì giá trị mặc định sẽ là None, để phương thức này không bao giờ gửi lỗi.

Thông số

Thông số Mô tả
key bắt buộc
Khoá cần tìm.
default mặc định là None
Giá trị mặc định để sử dụng (thay vì None) nếu không tìm thấy khoá.

mục

list dict.items()

Trả về danh sách các bộ khoá-giá trị:
{2: "a", 4: "b", 1: "c"}.items() == [(2, "a"), (4, "b"), (1, "c")]

khoá

list dict.keys()

Trả về danh sách khoá:
{2: "a", 4: "b", 1: "c"}.keys() == [2, 4, 1]

nhạc pop

unknown dict.pop(key, default=unbound)

Xoá một key khỏi từ điển và trả về giá trị được liên kết. Nếu không tìm thấy mục nhập nào có khoá đó, hãy không xoá gì và trả về giá trị default đã chỉ định; nếu không chỉ định giá trị mặc định, hãy thất bại.

Thông số

Thông số Mô tả
key required
Khoá.
default mặc định là unbound
giá trị mặc định nếu khoá không có.

popitem

tuple dict.popitem()

Xoá và trả về cặp (key, value) đầu tiên trong từ điển. popitem rất hữu ích khi lặp lại một cách huỷ diệt trên một từ điển, thường được dùng trong các thuật toán tập hợp. Nếu từ điển trống, lệnh gọi popitem sẽ không thành công.

setdefault

unknown dict.setdefault(key, default=None)

Nếu key nằm trong từ điển, hãy trả về giá trị của key. Nếu không, hãy chèn khoá có giá trị default và trả về default. default mặc định là None.

Thông số

Thông số Mô tả
key required
Khoá.
default mặc định là None
giá trị mặc định nếu khoá không có.

cập nhật

None dict.update(pairs=[], **kwargs)

Trước tiên, hãy cập nhật từ điển bằng đối số vị trí không bắt buộc, pairs, sau đó bằng các đối số từ khoá không bắt buộc. Nếu đối số vị trí xuất hiện, thì đối số đó phải là một từ điển, có thể lặp lại hoặc không có giá trị nào. Nếu đó là một từ điển, thì các cặp khoá/giá trị của từ điển đó sẽ được chèn vào từ điển này. Nếu là một đối tượng có thể lặp lại, thì đối tượng đó phải cung cấp một chuỗi các cặp (hoặc các đối tượng có thể lặp lại khác có độ dài 2), mỗi cặp được coi là một cặp khoá/giá trị cần được chèn. Mỗi đối số từ khoá name=value sẽ khiến cặp tên/giá trị được chèn vào từ điển này.

Thông số

Thông số Mô tả
pairs mặc định là []
Có thể là một từ điển hoặc một danh sách các mục. Các mục phải là bộ hoặc danh sách có chính xác hai phần tử: khoá, giá trị.
kwargs required
Từ điển gồm các mục bổ sung.

giá trị

list dict.values()

Trả về danh sách giá trị:
{2: "a", 4: "b", 1: "c"}.values() == ["a", "b", "c"]