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
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():
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:
cau = "banana"dem = {}for ky_tu in cau: if ky_tu in dem: dem[ky_tu] = dem[ky_tu] + 1 else: dem[ky_tu] = 1print(dem)Viết gọn hơn với get:
cau = "banana"dem = {}for ky_tu in cau: dem[ky_tu] = dem.get(ky_tu, 0) + 1print(dem)Đếm từ trong câu
cau = input("Nhập câu: ")dem = {}for tu in cau.split(): dem[tu] = dem.get(tu, 0) + 1for tu, so_lan in dem.items(): print(tu, so_lan)Ghi nhớ: duyệt bằng
for khoa in dhoặcfor 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.