chính sách

Báo cáo sự cố Xem nguồn

dict là một loại tích hợp sẵn đại diện cho á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ử tư cách thành viên chính bằng k in d; cả hai thao tác mất thời gian không đổi. Từ điển không 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; phép lặp lại tạo ra chuỗi khoá theo thứ tự chèn. Thứ tự lặp lại không bị ảnh hưởng bởi việc cập nhật giá trị liên kết với khoá hiện có, nhưng bị ảnh hưởng bởi việc xoá rồi lắp lại khoá.
d = {0: 0, 2: 2, 1: 1}
[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, 1), (2, "b")]

Có bốn cách xây dựng từ điển:

  1. Biểu thức từ điển {k: v, ...} tạo ra một từ điển mới, trong đó có các mục nhập khoá/giá trị được chỉ định, được chèn theo thứ tự xuất hiện trong biểu thức. Không đánh giá được nếu hai biểu thức chính bất kỳ mang lại cùng một giá trị.
  2. Việc hiểu từ điển {k: v for vars in seq} tạo ra một từ điển mới, trong đó mỗi cặp khoá/giá trị được chèn vào theo thứ tự lặp lại. Được phép trùng lặp: lần chèn khóa nhất định đầu tiên sẽ xác định vị trí của khóa trong trình tự và lần chèn cuối cùng xác định giá trị được liên kết của khóa.
    {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ề từ điển chứa các mục đã chỉ định. Các mục này được chèn theo thứ tự đối số, đối số vị trí trước khi được đặt tên. Tương tự như với cách hiểu, chúng tôi chấp nhận các khóa 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 khoá k, thì giá trị của khoá ở bên phải (nói cách khác là y[k]) sẽ chiến thắng. Biến thể |= của toán tử hợp nhất sửa đổi 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ì default. Nếu không được cung cấp default, hệ thống sẽ mặc định đặt giá trị là None để phương thức này không bao giờ gửi lỗi.

Các tham số

Thông số Nội dung 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á.

items

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 các khoá:
{2: "a", 4: "b", 1: "c"}.keys() == [2, 4, 1]

nhạc pop

unknown dict.pop(key, default=unbound)

Xoá key khỏi lệnh và trả về giá trị liên quan. 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 được chỉ định; nếu không có giá trị mặc định nào được chỉ định thì sẽ thất bại.

Các tham số

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

mục bật lên

tuple dict.popitem()

Xoá rồi trả lại 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 một cách có thiệt hại trên từ điển, như 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.

đặt làm mặc định

unknown dict.setdefault(key, default=None)

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

Các tham số

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

cập nhật

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

Trước tiên, cập nhật từ điển bằng đối số vị trí không bắt buộc (pairs), sau đó dù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 lệnh chính tả, có thể lặp lại hoặc Không có. Nếu đó là một lệnh thì các cặp khoá/giá trị của lệnh đó sẽ được chèn vào lệnh đó. Nếu đây là một đối tượng có thể lặp lại, đối tượng này 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 chèn. Mỗi đối số từ khoá name=value khiến cặp tên/giá trị được chèn vào lệnh này.

Các tham số

Thông số Nội dung mô tả
pairs mặc định là []
Từ điển hoặc danh sách các mục nhập. Mục nhập phải là bộ dữ liệu hoặc danh sách chứa chính xác hai phần tử: khoá, giá trị.
kwargs bắt buộc
Từ điển của mục nhập 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"]