chính sách

Báo cáo vấn đề Xem nguồn Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

dict là một loại tích hợp sẵn đại diện cho một bản đồ ánh xạ liên kết hoặc từ điển. Từ điển hỗ trợ lập chỉ mục bằng d[k] và kiểm thử thành viên chính bằng k in d; cả hai thao tác đều mất thời gian không đổi. Các từ điển chưa bị đóng băng có thể thay đổi và có thể được cập nhật bằng cách gán 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; việc lặp lại sẽ tạo ra trình tự các khoá theo thứ tự chèn. Việc cập nhật giá trị liên kết với một khoá hiện có sẽ không ảnh hưởng đến thứ tự lặp lại, nhưng sẽ ảnh hưởng đến việc xoá rồi chèn lại 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ẽ không thành công nếu có hai biểu thức khoá nào đó trả về cùng một giá trị.
  2. Một câu lệnh nắm bắt từ điển {k: v for vars in seq} sẽ tạo ra một từ điển mới, trong đó mỗi cặp khoá/giá trị được chèn theo thứ tự lặp lại của 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 xác định vị trí của khoá đó trong trình tự và lần chèn cuối cùng xác định giá trị 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 nhập được chỉ định, được chèn theo thứ tự đối số, đối số vị trí trước đối số được đặt tên. Giống như với các biểu thức hiểu biết, các khoá trùng lặp được phé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 bên phải (tức là y[k]) sẽ thắng. Biến thể |= của toán tử hợp nhất 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 không được cung cấp, default sẽ mặc định 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ì Không có) nếu không tìm thấy khoá.

mục

list dict.items()

Trả về danh sách các cặp 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á key khỏi dict 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 trả về giá trị default đã chỉ định; nếu không chỉ định giá trị mặc định, hãy trả về giá trị không hợp lệ.

Thông số

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

popitem

tuple dict.popitem()

Xoá và trả về cặp (key, value) đầu tiên khỏi từ điển. popitem rất hữu ích trong việc lặp lại toàn bộ từ điển theo cách có khả năng gây thiệt hại, như thường dùng trong các thuật toán đã đặt. 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 có trong từ điển, hãy trả về giá trị của từ điển đó. Nếu không, hãy chèn khoá có giá trị default rồi trả về default. default mặc định là None.

Thông số

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

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 đó cập nhật bằng các đối số từ khoá không bắt buộc. Nếu có đối số vị trí, thì đối số đó phải là một từ điển, có thể lặp lại hoặc rỗng. Nếu đó là một tập hợp, thì các cặp khoá/giá trị của tập hợp đó sẽ được chèn vào tập hợp 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 trình tự 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 chèn. Mỗi đối số từ khoá name=value sẽ chèn cặp tên/giá trị vào từ điển này.

Thông số

Thông số Mô tả
pairs mặc định là []
Một từ điển hoặc danh sách các mục nhập. Mục nhập phải là các bộ dữ liệu hoặc danh sách có đúng hai phần tử: khoá, giá trị.
kwargs bắt buộc
Từ điển của các mục bổ sung.

giá trị

list dict.values()

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