Dictionary
Menyimpan pasangan kunci-nilai: membuat, membaca, mengubah, dan menelusuri.
Dictionary
Dictionary (dict) menyimpan pasangan kunci → nilai dan mengambilnya dengan sangat cepat.
siswa = {
"nama": "Sari",
"umur": 17,
"hobi": ["membaca", "renang"],
}
Kunci harus unik dan immutable (string, angka, tuple). Nilai boleh apa saja, termasuk list atau dict lain. Sejak Python 3.7, dict mengingat urutan penyisipan.
Membaca nilai
print(siswa["nama"]) # Sari
print(siswa.get("kota")) # None (tidak error)
print(siswa.get("kota", "-")) # "-" (nilai bawaan)
siswa["kota"] untuk kunci yang tidak ada → KeyError. Gunakan .get() bila kunci mungkin tidak ada.
Menambah, mengubah, menghapus
siswa["kota"] = "Bandung" # tambah
siswa["umur"] = 18 # ubah
siswa.update({"umur": 19, "kelas": "XII"}) # banyak sekaligus
del siswa["hobi"] # hapus
umur = siswa.pop("umur") # hapus & ambil nilainya
Mengecek kunci
print("nama" in siswa) # True
in pada dict memeriksa kunci, bukan nilai.
Menelusuri dict
harga = {"apel": 5000, "jeruk": 7000}
for k in harga: # kunci
print(k)
for v in harga.values(): # nilai
print(v)
for k, v in harga.items(): # pasangan
print(f"{k}: {v}")
Fungsi yang berguna
len(harga) # jumlah pasangan
sum(harga.values()) # total semua nilai
max(harga, key=harga.get) # kunci dengan nilai terbesar
sorted(harga.items(), key=lambda kv: kv[1]) # urut berdasarkan nilai
Pola menghitung frekuensi
teks = "kata kata kita"
hitung = {}
for kata in teks.split():
hitung[kata] = hitung.get(kata, 0) + 1
print(hitung) # {'kata': 2, 'kita': 1}
(Ada juga collections.Counter yang melakukan ini otomatis, bab 19.)
Dict bersarang
kelas = {
"ani": {"nilai": 90, "lulus": True},
"budi": {"nilai": 60, "lulus": False},
}
print(kelas["ani"]["nilai"]) # 90
Struktur seperti ini sangat mirip JSON, format pertukaran data paling populer.
Menggabungkan dict
a = {"x": 1}
b = {"y": 2}
c = {**a, **b} # {'x': 1, 'y': 2}
c = a | b # Python 3.9+