
List Comprehension di Python
List comprehension adalah salah satu fitur keren di Python yang memungkinkan kita membuat list baru dengan sintaks yang singkat, elegan, dan mudah dibaca.
Dictionary comprehension adalah salah satu fitur keren di Python yang memungkinkan kita membuat dictionary baru dengan sintaks yang singkat, jelas, dan efisien. Dengan dictionary comprehension, kita bisa menggantikan perulangan for
tradisional yang biasanya lebih panjang dan kurang elegan saat ingin membangun dictionary dari data lain.
Pada artikel ini, kita akan membahas apa itu dictionary comprehension, bagaimana cara menggunakannya, serta berbagai contoh penggunaannya dalam kehidupan sehari-hari sebagai programmer Python. Artikel ini cocok untuk pemula yang ingin menulis kode Python yang lebih “pythonic” dan efisien.
Dictionary comprehension adalah cara singkat untuk membuat dictionary baru dari iterable (seperti list, tuple, atau dictionary lain), dengan menerapkan operasi tertentu pada setiap elemennya, bahkan bisa juga dengan kondisi tertentu.
Sintaks dasarnya:
{key_expr: value_expr for item in iterable}
Jika ingin menambahkan kondisi (filter):
{key_expr: value_expr for item in iterable if kondisi}
Beberapa alasan utama menggunakan dictionary comprehension:
for
biasa.Mari kita bandingkan cara tradisional dan dictionary comprehension untuk membuat dictionary berisi angka dan kuadratnya.
kuadrat = {}
for i in range(1, 6):
kuadrat[i] = i ** 2
print(kuadrat)
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
kuadrat = {i: i ** 2 for i in range(1, 6)}
print(kuadrat)
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Hasilnya sama, tapi kode dengan dictionary comprehension jauh lebih singkat dan mudah dibaca.
Kita juga bisa menambahkan kondisi agar hanya elemen tertentu yang masuk ke dictionary baru.
Contoh: Membuat dictionary hanya untuk angka genap
genap_kuadrat = {x: x ** 2 for x in range(1, 11) if x % 2 == 0}
print(genap_kuadrat)
{2: 4, 4: 16, 6: 36, 8: 64, 10: 100}
Contoh: Membalik key dan value dari dictionary
buah = {"apel": "merah", "pisang": "kuning", "jeruk": "oranye"}
warna_buah = {warna: nama for nama, warna in buah.items()}
print(warna_buah)
{'merah': 'apel', 'kuning': 'pisang', 'oranye': 'jeruk'}
Kita juga bisa menggunakan if-else
di dalam ekspresi value.
Contoh: Tandai angka sebagai “genap” atau “ganjil”
paritas = {x: "genap" if x % 2 == 0 else "ganjil" for x in range(1, 6)}
print(paritas)
{1: 'ganjil', 2: 'genap', 3: 'ganjil', 4: 'genap', 5: 'ganjil'}
Seringkali kita ingin membuat dictionary dari dua list, misal list nama dan list nilai.
nama = ["Budi", "Ani", "Cindy"]
nilai = [80, 90, 85]
data_nilai = {n: v for n, v in zip(nama, nilai)}
print(data_nilai)
{'Budi': 80, 'Ani': 90, 'Cindy': 85}
Dictionary comprehension sangat cocok untuk mengambil data tertentu dari dictionary berdasarkan kondisi.
Contoh: Filter siswa yang nilainya di atas 80
nilai_siswa = {"Budi": 80, "Ani": 90, "Cindy": 85, "Dodi": 75}
lulus = {nama: nilai for nama, nilai in nilai_siswa.items() if nilai > 80}
print(lulus)
{'Ani': 90, 'Cindy': 85}
Kita juga bisa membuat dictionary bersarang (nested dictionary) dengan comprehension.
Contoh: Matriks sebagai dictionary
matriks = {(i, j): i * j for i in range(1, 4) for j in range(1, 4)}
print(matriks)
{(1, 1): 1, (1, 2): 2, (1, 3): 3, (2, 1): 2, (2, 2): 4, (2, 3): 6, (3, 1): 3, (3, 2): 6, (3, 3): 9}
Gunakan Dictionary Comprehension ketika | Gunakan For Loop Tradisional ketika |
---|---|
Operasi sederhana dan satu baris | Operasi kompleks, banyak langkah |
Hanya ingin membuat/memodifikasi dictionary | Perlu banyak logika di dalam loop |
Ingin kode lebih ringkas dan jelas | Perlu side-effect (misal: print, update variabel lain) |
Tips: Jika operasi di dalam loop sudah terlalu rumit, lebih baik gunakan for loop biasa agar kode tetap mudah dibaca.
Lupa tanda kurung kurawal
Dictionary comprehension harus diapit { ... }
.
Menulis ekspresi di tempat yang salah
Urutan penulisan: key: value, lalu for, lalu if (jika ada).
Menggunakan dictionary comprehension untuk side-effect
Hindari menggunakan dictionary comprehension hanya untuk menjalankan fungsi yang tidak mengembalikan nilai (misal: print). Gunakan for loop biasa untuk itu.
Dictionary comprehension adalah fitur powerful di Python yang membuat pembuatan dictionary jadi lebih singkat, efisien, dan mudah dibaca. Dengan memahami cara kerja dan berbagai variasinya, kamu bisa menulis kode Python yang lebih “pythonic” dan profesional.
Ringkasan yang perlu diingat:
Teruslah berlatih menggunakan dictionary comprehension di berbagai kasus, dan kamu akan semakin mahir menulis kode Python yang elegan!
Happy coding!
List comprehension adalah salah satu fitur keren di Python yang memungkinkan kita membuat list baru dengan sintaks yang singkat, elegan, dan mudah dibaca.
Fungsi (function) adalah salah satu konsep fundamental dalam pemrograman, termasuk di Python.
Dalam pemrograman Python, mengontrol alur eksekusi program adalah keterampilan penting yang harus dikuasai.
Perulangan (loops) adalah salah satu konsep dasar yang sangat penting dalam pemrograman.