Koleksi Data · Pelajaran 6 dari 11
Dictionary: pasangan kunci dan nilai
9 menit baca · BelajarCode
Dictionary menyimpan pasangan kunci: nilai. Berbeda dengan list yang diakses dengan nomor indeks, dictionary diakses dengan kunci.
1siswa = {"nama": "Rani", "kelas": "XI-2", "nilai": 88}2print(siswa["nama"])3siswa["nilai"] = 914siswa["ekskul"] = "Robotik"5del siswa["kelas"]6print(siswa)7print(siswa.get("alamat", "belum diisi"))Rani
{'nama': 'Rani', 'nilai': 91, 'ekskul': 'Robotik'}
belum diisisiswa["nilai"] = 91mengubah nilai, dan menambah kunci baru jika belum ada.delmenghapus sebuah kunci.get(kunci, bawaan)mengembalikan nilai bawaan jika kuncinya tidak ada, alih-alih error.
Menelusuri dictionary
1nilai = {"Andi": 78, "Bela": 92, "Citra": 85}2for nama, n in nilai.items():3 print(nama, n)4print(list(nilai.keys()))5print(sum(nilai.values()) / len(nilai))Andi 78 Bela 92 Citra 85 ['Andi', 'Bela', 'Citra'] 85.0
Menghitung frekuensi kata
1teks = "belajar coding itu seru belajar dari flowchart itu mudah"2hitung = {}3for kata in teks.split():4 hitung[kata] = hitung.get(kata, 0) + 156teratas = sorted(hitung.items(), key=lambda pasangan: pasangan[1], reverse=True)7print(teratas[:3])[('belajar', 2), ('itu', 2), ('coding', 1)]lambda pasangan: pasangan[1] adalah fungsi kecil tanpa nama yang mengambil bagian kedua (jumlah) dari setiap pasangan. Kata dengan jumlah sama tetap dalam urutan kemunculannya.
Data bersarang
Dictionary bisa berisi list atau dictionary lain, membentuk data yang terstruktur.
1kelas = {2 "Andi": {"mtk": 80, "ipa": 75},3 "Bela": {"mtk": 95, "ipa": 88},4}5for nama, mapel in kelas.items():6 rata = sum(mapel.values()) / len(mapel)7 print(f"{nama}: rata-rata {rata}")8print("Nilai IPA Bela:", kelas["Bela"]["ipa"])Andi: rata-rata 77.5 Bela: rata-rata 91.5 Nilai IPA Bela: 88
Dictionary comprehension
1harga = {"buku": 12000, "pensil": 3000, "penggaris": 5000}2diskon = {barang: h * 90 // 100 for barang, h in harga.items()}3print(diskon){'buku': 10800, 'pensil': 2700, 'penggaris': 4500}Cek pemahaman
Apa yang terjadi jika menjalankan d = {"a": 1} lalu print(d["b"])?
Latihan
Nilai tertinggi per mapel
Dari data berikut, tampilkan nama siswa dengan nilai tertinggi untuk setiap mapel.
1kelas = {2 "Andi": {"mtk": 80, "ipa": 90},3 "Bela": {"mtk": 95, "ipa": 85},4 "Citra": {"mtk": 70, "ipa": 92},5}Pembahasan
1kelas = {2 "Andi": {"mtk": 80, "ipa": 90},3 "Bela": {"mtk": 95, "ipa": 85},4 "Citra": {"mtk": 70, "ipa": 92},5}6for mapel in ["mtk", "ipa"]:7 terbaik = max(kelas, key=lambda nama: kelas[nama][mapel])8 print(f"{mapel}: {terbaik} ({kelas[terbaik][mapel]})")mtk: Bela (95) ipa: Citra (92)
max dengan key membandingkan nama siswa berdasarkan nilai mapel tertentu, lalu mengembalikan nama dengan nilai terbesar.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.