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 { }:
diem = {"Toán": 9, "Văn": 8, "Anh": 10}print(diem)print(len(diem))Tra cứu bằng khoá
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:
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:
diem = {"Toán": 9}print(diem.get("Sử", 0))print(diem.get("Toán", 0))Thêm, sửa, xoá
diem = {"Toán": 9}diem["Văn"] = 8diem["Toán"] = 10print(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á
diem = {"Toán": 9, "Văn": 8}print("Toán" in diem)print("Sử" in diem)Ghi nhớ:
{khoá: giá_trị}; tra bằngd[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.