Duyệt và đếm với từ điển

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

Duyệt qua từ điển

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

Cách gọn hơn, lấy cả khoá và giá trị cùng lúc bằng .items():

Python
diem = {"Toán": 9, "Văn": 8, "Anh": 10}
for mon, d in diem.items():
print(f"{mon}: {d}")
print(list(diem.keys()))
print(list(diem.values()))

Mẫu quan trọng: đếm số lần xuất hiện

Đây là ứng dụng kinh điển của từ điển — đếm mỗi ký tự (hoặc từ) xuất hiện bao nhiêu lần:

Python
cau = "banana"
dem = {}
for ky_tu in cau:
if ky_tu in dem:
dem[ky_tu] = dem[ky_tu] + 1
else:
dem[ky_tu] = 1
print(dem)

Viết gọn hơn với get:

Python
cau = "banana"
dem = {}
for ky_tu in cau:
dem[ky_tu] = dem.get(ky_tu, 0) + 1
print(dem)

Đếm từ trong câu

Python
cau = input("Nhập câu: ")
dem = {}
for tu in cau.split():
dem[tu] = dem.get(tu, 0) + 1
for tu, so_lan in dem.items():
print(tu, so_lan)

Ghi nhớ: duyệt bằng for khoa in d hoặc for khoa, gia_tri in d.items(). Mẫu đếm: d[x] = d.get(x, 0) + 1.

Vì sao dùng `dem.get(x, 0) + 1` mà không phải `dem[x] + 1`?

Lần đầu gặp x, khoá chưa tồn tại nên dem[x] gây KeyError; get(x, 0) trả về 0 làm giá trị khởi đầu.

Duyệt và đếm với từ điển · Lý thuyết Python · PyKid