Từ điển - lưu theo cặp khoá và giá trị

Bài 1/4 · khoảng 8 phút đọc

Danh sách tra cứu bằng số thứ tự. Nhưng đôi khi ta muốn tra bằng tên — như tra từ trong từ điển giấy: biết từ, tìm nghĩa. Từ điển (dictionary, viết tắt dict) lưu dữ liệu theo cặp khoá : giá trị, trong cặp ngoặc nhọn { }:

Python
diem = {"Toán": 9, "Văn": 8, "Anh": 10}
print(diem)
print(len(diem))

Tra cứu bằng khoá

Python
diem = {"Toán": 9, "Văn": 8, "Anh": 10}
print(diem["Toán"])
print(diem["Anh"])

Khoá không tồn tại sẽ gây lỗi KeyError:

Python · ví dụ lỗi
diem = {"Toán": 9}
print(diem["Sử"])

Dùng get để an toàn hơn — trả về giá trị mặc định thay vì lỗi:

Python
diem = {"Toán": 9}
print(diem.get("Sử", 0))
print(diem.get("Toán", 0))

Thêm, sửa, xoá

Python
diem = {"Toán": 9}
diem["Văn"] = 8
diem["Toán"] = 10
print(diem)
del diem["Văn"]
print(diem)

Gán vào khoá chưa có thì thêm mới; gán vào khoá đã có thì sửa.

Kiểm tra khoá

Python
diem = {"Toán": 9, "Văn": 8}
print("Toán" in diem)
print("Sử" in diem)

Ghi nhớ: {khoá: giá_trị}; tra bằng d[khoá]; d.get(khoá, mặc_định) an toàn hơn; d[khoá] = giá_trị để thêm hoặc sửa.

Khi nào nên dùng từ điển thay vì danh sách?

Khi muốn tra cứu bằng một "tên" (khoá) có ý nghĩa thay vì số thứ tự, ví dụ tên môn → điểm, tên học sinh → lớp.

Từ điển - lưu theo cặp khoá và giá trị · Lý thuyết Python · PyKid