List Comprehension dalam Python
List comprehension merupakan salah satu cara yang disediakan Python untuk membuat list dengan bentuk penulisan yang lebih ringkas. Teknik ini memungkinkan proses pembuatan list dilakukan berdasarkan data dari suatu perulangan dan dapat dilengkapi dengan kondisi tertentu.
Sebelum lebih lanjut mempelajari materi tentang List Comprehension dalam Python, terlebih dahulu pelajari materi tentang: Multiple Inheritance dalam Python, Polimorfisme dalam Python, dan Operator Overloading dalam Python.
Sebelum lebih lanjut mempelajari materi tentang List Comprehension dalam Python, terlebih dahulu pelajari materi tentang: Multiple Inheritance dalam Python, Polimorfisme dalam Python, dan Operator Overloading dalam Python.
Dalam pemrograman Python, pembuatan list sering dilakukan menggunakan perulangan `for`. Cara tersebut mudah dipahami, tetapi untuk operasi sederhana dapat ditulis dengan bentuk yang lebih singkat menggunakan list comprehension.
Sebagai contoh, sebuah program dapat membuat list berisi angka dari 1 sampai 5 menggunakan perulangan biasa.
angka = []
for i in range(1, 6):
angka.append(i)
print(angka)
Hasil:
[1, 2, 3, 4, 5]
Dengan list comprehension, kode tersebut dapat ditulis lebih singkat:
angka = [i for i in range(1, 6)]
print(angka)
Hasilnya tetap:
[1, 2, 3, 4, 5]
Bentuk dasarnya:
[ekspresi for item in iterable]
Contoh:
angka = [i for i in range(5)]
Pada kode tersebut:
[ekspresi for item in iterable]
Contoh:
[i * 2 for i in range(5)]
Ekspresi yang digunakan adalah:
i * 2
for i in range(5)
Contohnya:
range(5)
Iterable lainnya dapat berupa list, tuple, string, dan berbagai objek yang dapat digunakan dalam perulangan.
Contoh paling dasar:
angka = [i for i in range(1, 6)]
print(angka)
Hasil:
[1, 2, 3, 4, 5]
Kode tersebut sama dengan:
angka = []
for i in range(1, 6):
angka.append(i)
List comprehension membuat penulisan menjadi lebih ringkas.
kuadrat = [i ** 2 for i in range(1, 6)]
print(kuadrat)
Hasil:
[1, 4, 9, 16, 25]
Jika menggunakan perulangan biasa:
kuadrat = []
for i in range(1, 6):
kuadrat.append(i ** 2)
Kedua cara menghasilkan data yang sama.
angka = [1, 2, 3, 4, 5]
hasil = [i * 3 for i in angka]
print(hasil)
Hasil:
[3, 6, 9, 12, 15]
angka = [10, 20, 30, 40]
hasil = [i + 5 for i in angka]
print(hasil)
Hasil:
[15, 25, 35, 45]
nama = ["andi", "budi", "citra"]
hasil = [kata.upper() for kata in nama]
print(hasil)
Hasil:
['ANDI', 'BUDI', 'CITRA']
nama = ["ANDI", "BUDI", "CITRA"]
hasil = [kata.lower() for kata in nama]
print(hasil)
Hasil:
['andi', 'budi', 'citra']
Bentuknya:
[ekspresi for item in iterable if kondisi]
Contoh:
angka = [1, 2, 3, 4, 5, 6]
genap = [i for i in angka if i % 2 == 0]
print(genap)
Hasil:
[2, 4, 6]
Program tersebut hanya memasukkan angka yang memenuhi kondisi `i % 2 == 0`.
angka = [1, 2, 3, 4, 5, 6]
ganjil = [i for i in angka if i % 2 != 0]
print(ganjil)
Hasil:
[1, 3, 5]
angka = [10, 15, 20, 25, 30]
hasil = [i for i in angka if i > 20]
print(hasil)
Hasil:
[25, 30]
angka = [10, 15, 20, 25, 30]
hasil = [i for i in angka if i < 20]
print(hasil)
Hasil:
[10, 15]
Bentuknya:
[ekspresi_if if kondisi else ekspresi_else for item in iterable]
Contoh:
angka = [1, 2, 3, 4, 5]
hasil = ["genap" if i % 2 == 0 else "ganjil" for i in angka]
print(hasil)
Hasil:
['ganjil', 'genap', 'ganjil', 'genap', 'ganjil']
Perlu diperhatikan bahwa posisi `if-else` berbeda dengan kondisi `if` biasa pada list comprehension.
[i for i in angka if i > 5]
`if` berada setelah bagian `for`.
Untuk menghasilkan nilai berbeda berdasarkan kondisi:
["besar" if i > 5 else "kecil" for i in angka]
`if-else` berada sebelum bagian `for`.
teks = "Python"
hasil = [huruf for huruf in teks]
print(hasil)
Hasil:
['P', 'y', 't', 'h', 'o', 'n']
teks = "pemrograman"
vokal = [huruf for huruf in teks if huruf in "aiueo"]
print(vokal)
Hasil:
['e', 'o', 'a']
kata = ["Python", "Java", "C", "JavaScript", "Go"]
hasil = [item for item in kata if len(item) > 3]
print(hasil)
Hasil:
['Python', 'Java', 'JavaScript']
buah = ["apel", "mangga", "jeruk"]
hasil = [item.upper() for item in buah]
print(hasil)
Hasil:
['APEL', 'MANGGA', 'JERUK']
angka = (1, 2, 3, 4, 5)
hasil = [i * 2 for i in angka]
print(hasil)
Hasil:
[2, 4, 6, 8, 10]
Walaupun sumber datanya berupa tuple, hasil list comprehension tetap berupa list.
angka = {1, 2, 3, 4, 5}
hasil = [i * 2 for i in angka]
print(hasil)
Hasilnya berupa list.
Urutan elemen dari set tidak selalu sama seperti urutan penulisan karena set tidak mempertahankan urutan seperti list.
data = {
"Andi": 80,
"Budi": 90,
"Citra": 85
}
nama = [key for key in data]
print(nama)
Hasil:
['Andi', 'Budi', 'Citra']
Secara umum, perulangan langsung terhadap dictionary akan mengambil bagian kuncinya.
data = {
"Andi": 80,
"Budi": 90,
"Citra": 85
}
nilai = [value for value in data.values()]
print(nilai)
Hasil:
[80, 90, 85]
data = {
"Andi": 80,
"Budi": 90,
"Citra": 85
}
nilai = [value for value in data.values() if value >= 85]
print(nilai)
Hasil:
[90, 85]
nama = ["Andi", "Budi", "Citra"]
hasil = [f"{i}: {nama}" for i, nama in enumerate(nama, start=1)]
print(hasil)
Hasil:
['1: Andi', '2: Budi', '3: Citra']
Cara tersebut berguna ketika setiap data membutuhkan nomor urut.
angka = [i for i in range(10)]
print(angka)
Hasil:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Dengan langkah tertentu:
angka = [i for i in range(0, 11, 2)]
print(angka)
Hasil:
[0, 2, 4, 6, 8, 10]
Contoh:
hasil = [x for x in range(3) for y in range(2)]
print(hasil)
Hasil:
[0, 0, 1, 1, 2, 2]
Perulangan tersebut setara dengan:
hasil = []
for x in range(3):
for y in range(2):
hasil.append(x)
hasil = [
(x, y)
for x in range(1, 4)
for y in range(1, 3)
]
print(hasil)
Hasil:
[(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]
hasil = [
(x, y)
for x in range(1, 5)
for y in range(1, 5)
if x != y
]
print(hasil)
Kode tersebut menghasilkan pasangan nilai yang tidak sama.
matriks = [
[0 for j in range(3)]
for i in range(2)
]
print(matriks)
Hasil:
[[0, 0, 0], [0, 0, 0]]
Matriks tersebut memiliki dua baris dan tiga kolom.
matriks = [
[j for j in range(1, 4)]
for i in range(3)
]
print(matriks)
Hasil:
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
matriks = [
[1, 2, 3],
[4, 5, 6]
]
hasil = [
[nilai * 2 for nilai in baris]
for baris in matriks
]
print(hasil)
Hasil:
[[2, 4, 6], [8, 10, 12]]
matriks = [
[1, 2, 3],
[4, 5, 6]
]
hasil = [nilai for baris in matriks for nilai in baris]
print(hasil)
Hasil:
[1, 2, 3, 4, 5, 6]
def kuadrat(x):
return x ** 2
hasil = [kuadrat(i) for i in range(1, 6)]
print(hasil)
Hasil:
[1, 4, 9, 16, 25]
Contoh:
angka = [-5, -2, 3, -7]
hasil = [abs(i) for i in angka]
print(hasil)
Hasil:
[5, 2, 3, 7]
nilai = [70, 85, 90, 65, 80]
Nilai dapat ditambah 5:
hasil = [n + 5 for n in nilai]
print(hasil)
Hasil:
[75, 90, 95, 70, 85]
Nilai yang memenuhi batas tertentu juga dapat dipilih:
lulus = [n for n in nilai if n >= 75]
print(lulus)
Hasil:
[85, 90, 80]
nilai = [90, 70, 85, 60]
hasil = [
"Lulus" if n >= 75 else "Tidak Lulus"
for n in nilai
]
print(hasil)
Hasil:
['Lulus', 'Tidak Lulus', 'Lulus', 'Tidak Lulus']
angka = [1, 2, 3, 4, 5]
hasil = []
for i in angka:
if i % 2 == 0:
hasil.append(i * 2)
print(hasil)
Dengan list comprehension:
hasil = [i * 2 for i in angka if i % 2 == 0]
print(hasil)
Kedua kode menghasilkan:
[4, 8]
List comprehension lebih ringkas untuk kasus sederhana.
hasil = [
proses_data(x)
for x in data
if kondisi1(x)
if kondisi2(x)
]
Jika logikanya semakin panjang, perulangan biasa dapat membuat kode lebih mudah dipahami.
[i for i in angka if i > 5]
Bukan:
[i if i > 5 for i in angka]
Bentuk kedua tidak sesuai dengan struktur list comprehension untuk penyaringan.
["genap" if i % 2 == 0 else "ganjil" for i in angka]
Bagian `if-else` berada sebelum `for`.
nilai = [65, 80, 75, 90, 55, 85]
nilai_lulus = [n for n in nilai if n >= 75]
nilai_tambahan = [n + 5 for n in nilai]
angka = []
for i in range(1, 6):
angka.append(i)
print(angka)
Hasil:
[1, 2, 3, 4, 5]
Dengan list comprehension, kode tersebut dapat ditulis lebih singkat:
angka = [i for i in range(1, 6)]
print(angka)
Hasilnya tetap:
[1, 2, 3, 4, 5]
Pengertian List Comprehension
List comprehension adalah cara membuat list baru berdasarkan suatu perulangan dan dapat disertai kondisi.Bentuk dasarnya:
[ekspresi for item in iterable]
Contoh:
angka = [i for i in range(5)]
Pada kode tersebut:
- `i` merupakan item yang diproses.
- `range(5)` merupakan sumber data.
- `i` di bagian awal merupakan nilai yang dimasukkan ke dalam list.
Struktur List Comprehension
Struktur sederhana dapat dibagi menjadi tiga bagian:[ekspresi for item in iterable]
Ekspresi
Ekspresi menentukan nilai yang dimasukkan ke dalam list.Contoh:
[i * 2 for i in range(5)]
Ekspresi yang digunakan adalah:
i * 2
Perulangan
Bagian `for` menentukan cara mengambil data.for i in range(5)
Iterable
Iterable merupakan sumber data yang diproses.Contohnya:
range(5)
Iterable lainnya dapat berupa list, tuple, string, dan berbagai objek yang dapat digunakan dalam perulangan.
List Comprehension Sederhana
Berikut diberikan contoh list comprehension sederhana.Contoh paling dasar:
angka = [i for i in range(1, 6)]
print(angka)
Hasil:
[1, 2, 3, 4, 5]
Kode tersebut sama dengan:
angka = []
for i in range(1, 6):
angka.append(i)
List comprehension membuat penulisan menjadi lebih ringkas.
Membuat Kuadrat Bilangan
List comprehension dapat digunakan untuk membuat daftar kuadrat.kuadrat = [i ** 2 for i in range(1, 6)]
print(kuadrat)
Hasil:
[1, 4, 9, 16, 25]
Jika menggunakan perulangan biasa:
kuadrat = []
for i in range(1, 6):
kuadrat.append(i ** 2)
Kedua cara menghasilkan data yang sama.
Mengalikan Setiap Nilai
Misalnya setiap angka ingin dikalikan dengan 3.angka = [1, 2, 3, 4, 5]
hasil = [i * 3 for i in angka]
print(hasil)
Hasil:
[3, 6, 9, 12, 15]
Mengubah Nilai dalam List
List comprehension juga dapat digunakan untuk melakukan perubahan terhadap setiap nilai.angka = [10, 20, 30, 40]
hasil = [i + 5 for i in angka]
print(hasil)
Hasil:
[15, 25, 35, 45]
Mengubah Teks Menjadi Huruf Kapital
List comprehension dapat digunakan untuk memproses string.nama = ["andi", "budi", "citra"]
hasil = [kata.upper() for kata in nama]
print(hasil)
Hasil:
['ANDI', 'BUDI', 'CITRA']
Mengubah Teks Menjadi Huruf Kecil
Cara yang sama dapat digunakan untuk membuat seluruh teks menjadi huruf kecil.nama = ["ANDI", "BUDI", "CITRA"]
hasil = [kata.lower() for kata in nama]
print(hasil)
Hasil:
['andi', 'budi', 'citra']
List Comprehension dengan Kondisi
List comprehension dapat menggunakan `if` untuk memilih data tertentu.Bentuknya:
[ekspresi for item in iterable if kondisi]
Contoh:
angka = [1, 2, 3, 4, 5, 6]
genap = [i for i in angka if i % 2 == 0]
print(genap)
Hasil:
[2, 4, 6]
Program tersebut hanya memasukkan angka yang memenuhi kondisi `i % 2 == 0`.
Mengambil Bilangan Ganjil
Berikut diberikan contoh untuk mengambil program dari bilangan ganjil.angka = [1, 2, 3, 4, 5, 6]
ganjil = [i for i in angka if i % 2 != 0]
print(ganjil)
Hasil:
[1, 3, 5]
Mengambil Bilangan Lebih Besar dari Nilai Tertentu
Berikut diberikan contoh untuk mengambil bilangan yang lebih besar dari nilai tertentu.angka = [10, 15, 20, 25, 30]
hasil = [i for i in angka if i > 20]
print(hasil)
Hasil:
[25, 30]
Mengambil Bilangan Kurang dari Nilai Tertentu
Berikut diberikan contoh untuk mengambil bilangan kurang dari nilai tertentu.angka = [10, 15, 20, 25, 30]
hasil = [i for i in angka if i < 20]
print(hasil)
Hasil:
[10, 15]
Menggunakan if-else
List comprehension juga dapat menggunakan `if-else`.Bentuknya:
[ekspresi_if if kondisi else ekspresi_else for item in iterable]
Contoh:
angka = [1, 2, 3, 4, 5]
hasil = ["genap" if i % 2 == 0 else "ganjil" for i in angka]
print(hasil)
Hasil:
['ganjil', 'genap', 'ganjil', 'genap', 'ganjil']
Perlu diperhatikan bahwa posisi `if-else` berbeda dengan kondisi `if` biasa pada list comprehension.
Perbedaan if dan if-else
Untuk hanya memilih data:[i for i in angka if i > 5]
`if` berada setelah bagian `for`.
Untuk menghasilkan nilai berbeda berdasarkan kondisi:
["besar" if i > 5 else "kecil" for i in angka]
`if-else` berada sebelum bagian `for`.
List Comprehension dengan String
String dapat digunakan sebagai sumber data.teks = "Python"
hasil = [huruf for huruf in teks]
print(hasil)
Hasil:
['P', 'y', 't', 'h', 'o', 'n']
Mengambil Huruf Tertentu
Misalnya hanya ingin mengambil huruf vokal:teks = "pemrograman"
vokal = [huruf for huruf in teks if huruf in "aiueo"]
print(vokal)
Hasil:
['e', 'o', 'a']
Mengambil Kata dengan Panjang Tertentu
Berikut diberikan contoh untuk mengambil kata dengan panjang tertentu.kata = ["Python", "Java", "C", "JavaScript", "Go"]
hasil = [item for item in kata if len(item) > 3]
print(hasil)
Hasil:
['Python', 'Java', 'JavaScript']
List Comprehension dengan List
Sumber data paling umum adalah list.buah = ["apel", "mangga", "jeruk"]
hasil = [item.upper() for item in buah]
print(hasil)
Hasil:
['APEL', 'MANGGA', 'JERUK']
List Comprehension dengan Tuple
Tuple juga dapat digunakan sebagai sumber data.angka = (1, 2, 3, 4, 5)
hasil = [i * 2 for i in angka]
print(hasil)
Hasil:
[2, 4, 6, 8, 10]
Walaupun sumber datanya berupa tuple, hasil list comprehension tetap berupa list.
List Comprehension dengan Set
Set juga dapat digunakan.angka = {1, 2, 3, 4, 5}
hasil = [i * 2 for i in angka]
print(hasil)
Hasilnya berupa list.
Urutan elemen dari set tidak selalu sama seperti urutan penulisan karena set tidak mempertahankan urutan seperti list.
List Comprehension dengan Dictionary
Dictionary dapat digunakan sebagai iterable.data = {
"Andi": 80,
"Budi": 90,
"Citra": 85
}
nama = [key for key in data]
print(nama)
Hasil:
['Andi', 'Budi', 'Citra']
Secara umum, perulangan langsung terhadap dictionary akan mengambil bagian kuncinya.
Mengambil Nilai Dictionary
Untuk mengambil nilai:data = {
"Andi": 80,
"Budi": 90,
"Citra": 85
}
nilai = [value for value in data.values()]
print(nilai)
Hasil:
[80, 90, 85]
Mengambil Data Berdasarkan Kondisi
Misalnya hanya mengambil nilai yang lebih besar atau sama dengan 85:data = {
"Andi": 80,
"Budi": 90,
"Citra": 85
}
nilai = [value for value in data.values() if value >= 85]
print(nilai)
Hasil:
[90, 85]
List Comprehension dengan enumerate()
Fungsi `enumerate()` dapat digunakan bersama list comprehension.nama = ["Andi", "Budi", "Citra"]
hasil = [f"{i}: {nama}" for i, nama in enumerate(nama, start=1)]
print(hasil)
Hasil:
['1: Andi', '2: Budi', '3: Citra']
Cara tersebut berguna ketika setiap data membutuhkan nomor urut.
List Comprehension dengan range()
`range()` sangat sering digunakan bersama list comprehension.angka = [i for i in range(10)]
print(angka)
Hasil:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Dengan langkah tertentu:
angka = [i for i in range(0, 11, 2)]
print(angka)
Hasil:
[0, 2, 4, 6, 8, 10]
List Comprehension Bersarang
List comprehension dapat menggunakan lebih dari satu perulangan.Contoh:
hasil = [x for x in range(3) for y in range(2)]
print(hasil)
Hasil:
[0, 0, 1, 1, 2, 2]
Perulangan tersebut setara dengan:
hasil = []
for x in range(3):
for y in range(2):
hasil.append(x)
Membuat Kombinasi Nilai
List comprehension bersarang dapat digunakan untuk membuat kombinasi.hasil = [
(x, y)
for x in range(1, 4)
for y in range(1, 3)
]
print(hasil)
Hasil:
[(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]
List Comprehension Bersarang dengan Kondisi
Kondisi juga dapat digunakan dalam perulangan bertingkat.hasil = [
(x, y)
for x in range(1, 5)
for y in range(1, 5)
if x != y
]
print(hasil)
Kode tersebut menghasilkan pasangan nilai yang tidak sama.
Membuat Matriks
List comprehension dapat digunakan untuk membuat matriks sederhana.matriks = [
[0 for j in range(3)]
for i in range(2)
]
print(matriks)
Hasil:
[[0, 0, 0], [0, 0, 0]]
Matriks tersebut memiliki dua baris dan tiga kolom.
Membuat Matriks dengan Nilai Berbeda
Berikut diberikan contoh tentang cara membuat matriks dengan nilai berbeda.matriks = [
[j for j in range(1, 4)]
for i in range(3)
]
print(matriks)
Hasil:
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
Mengubah Matriks
List comprehension dapat digunakan untuk memproses setiap nilai dalam matriks.matriks = [
[1, 2, 3],
[4, 5, 6]
]
hasil = [
[nilai * 2 for nilai in baris]
for baris in matriks
]
print(hasil)
Hasil:
[[2, 4, 6], [8, 10, 12]]
Mengubah Matriks Menjadi Satu List
List comprehension bersarang dapat digunakan untuk menggabungkan isi beberapa baris.matriks = [
[1, 2, 3],
[4, 5, 6]
]
hasil = [nilai for baris in matriks for nilai in baris]
print(hasil)
Hasil:
[1, 2, 3, 4, 5, 6]
List Comprehension dan Fungsi
Fungsi dapat digunakan dalam ekspresi list comprehension.def kuadrat(x):
return x ** 2
hasil = [kuadrat(i) for i in range(1, 6)]
print(hasil)
Hasil:
[1, 4, 9, 16, 25]
List Comprehension dengan Fungsi Bawaan
Fungsi bawaan seperti `len()`, `abs()`, dan `round()` juga dapat digunakan.Contoh:
angka = [-5, -2, 3, -7]
hasil = [abs(i) for i in angka]
print(hasil)
Hasil:
[5, 2, 3, 7]
List Comprehension untuk Data Nilai
Misalnya terdapat daftar nilai siswa:nilai = [70, 85, 90, 65, 80]
Nilai dapat ditambah 5:
hasil = [n + 5 for n in nilai]
print(hasil)
Hasil:
[75, 90, 95, 70, 85]
Nilai yang memenuhi batas tertentu juga dapat dipilih:
lulus = [n for n in nilai if n >= 75]
print(lulus)
Hasil:
[85, 90, 80]
Mengubah Nilai Menjadi Keterangan
List comprehension dapat digunakan untuk memberikan keterangan berdasarkan nilai.nilai = [90, 70, 85, 60]
hasil = [
"Lulus" if n >= 75 else "Tidak Lulus"
for n in nilai
]
print(hasil)
Hasil:
['Lulus', 'Tidak Lulus', 'Lulus', 'Tidak Lulus']
Membandingkan dengan Perulangan Biasa
Perulangan biasa:angka = [1, 2, 3, 4, 5]
hasil = []
for i in angka:
if i % 2 == 0:
hasil.append(i * 2)
print(hasil)
Dengan list comprehension:
hasil = [i * 2 for i in angka if i % 2 == 0]
print(hasil)
Kedua kode menghasilkan:
[4, 8]
List comprehension lebih ringkas untuk kasus sederhana.
Waktu Penggunaan List Comprehension
List comprehension cocok digunakan ketika:- Proses yang dilakukan sederhana.
- Hanya terdapat satu atau beberapa kondisi yang mudah dipahami.
- Kode menjadi lebih ringkas tanpa mengurangi keterbacaan.
- Ingin membuat list berdasarkan list lain.
- Ingin mengubah setiap nilai dalam suatu iterable.
- Ingin menyaring data berdasarkan kondisi.
Kondisi Menghindari Penggunaan List Comprehension
List comprehension tidak selalu menjadi pilihan terbaik. Jika proses terlalu panjang atau memiliki banyak kondisi, perulangan biasa dapat lebih mudah dibaca. Contoh yang terlalu rumit:hasil = [
proses_data(x)
for x in data
if kondisi1(x)
if kondisi2(x)
]
Jika logikanya semakin panjang, perulangan biasa dapat membuat kode lebih mudah dipahami.
Kesalahan yang Sering Terjadi
Berikut dijelaskan beberapa contoh kesalahan yang sering terjadi ketika menggunakan list comprehention.Salah Menempatkan if
Untuk penyaringan:[i for i in angka if i > 5]
Bukan:
[i if i > 5 for i in angka]
Bentuk kedua tidak sesuai dengan struktur list comprehension untuk penyaringan.
Salah Menempatkan if-else
Jika menggunakan `if-else` untuk menentukan nilai:["genap" if i % 2 == 0 else "ganjil" for i in angka]
Bagian `if-else` berada sebelum `for`.
Membuat Kode Terlalu Rumit
List comprehension sebaiknya tidak digunakan hanya untuk membuat kode terlihat singkat. Keterbacaan tetap menjadi hal penting.Keuntungan List Comprehension
Beberapa keuntungan list comprehension:- Penulisan lebih singkat.
- Mudah digunakan untuk operasi sederhana.
- Dapat menggabungkan perulangan dan kondisi.
- Cocok untuk mengubah data.
- Dapat menyaring data.
- Dapat digunakan pada berbagai iterable.
Kekurangan List Comprehension
Beberapa kekurangannya:- Kode yang terlalu panjang dapat sulit dibaca.
- Perulangan bertingkat dapat membingungkan.
- Kondisi yang kompleks lebih sulit dipahami.
- Tidak selalu lebih baik daripada perulangan biasa.
Perbandingan List Comprehension dan Perulangan
| Cara |
Bentuk |
Kelebihan |
|---|---|---|
|
|
|
|
|
|
Pola Dasar List Comprehension
| Bentuk |
Kegunaan |
|---|---|
|
|
|
|
|
|
|
|
|
|
Contoh Program Lengkap
Berikut contoh program sederhana untuk mengolah nilai siswa:nilai = [65, 80, 75, 90, 55, 85]
nilai_lulus = [n for n in nilai if n >= 75]
nilai_tambahan = [n + 5 for n in nilai]
status = [
"Lulus" if n >= 75 else "Tidak Lulus"
for n in nilai]
print("Nilai lulus:", nilai_lulus)
print("Nilai setelah tambahan:", nilai_tambahan)
print("Status:", status)
Hasil:
Nilai lulus: [80, 75, 90, 85]
Nilai setelah tambahan: [70, 85, 80, 95, 60, 90]
Status: ['Tidak Lulus', 'Lulus', 'Lulus', 'Lulus', 'Tidak Lulus', 'Lulus']
Program tersebut menunjukkan beberapa penggunaan list comprehension dalam satu program.
Bentuk paling sederhana adalah:
[ekspresi for item in iterable]
List comprehension juga dapat menggunakan kondisi:
[ekspresi for item in iterable if kondisi]
Selain itu, `if-else` dapat digunakan untuk menghasilkan nilai yang berbeda:
[ekspresi1 if kondisi else ekspresi2 for item in iterable]
Teknik ini dapat digunakan untuk mengubah data, menyaring data, menghitung nilai, mengolah teks, membuat matriks, serta mengolah data bertingkat.
Walaupun memiliki penulisan yang ringkas, list comprehension tidak harus digunakan pada setiap perulangan. Jika logika program terlalu rumit, perulangan biasa dapat menjadi pilihan yang lebih mudah dipahami.
Dengan memahami list comprehension, proses pengolahan data menggunakan Python dapat dilakukan dengan kode yang lebih ringkas dan terstruktur, terutama untuk operasi yang sederhana dan jelas.
"Lulus" if n >= 75 else "Tidak Lulus"
for n in nilai]
print("Nilai lulus:", nilai_lulus)
print("Nilai setelah tambahan:", nilai_tambahan)
print("Status:", status)
Hasil:
Nilai lulus: [80, 75, 90, 85]
Nilai setelah tambahan: [70, 85, 80, 95, 60, 90]
Status: ['Tidak Lulus', 'Lulus', 'Lulus', 'Lulus', 'Tidak Lulus', 'Lulus']
Program tersebut menunjukkan beberapa penggunaan list comprehension dalam satu program.
Latihan
Berikut diberikan beberapa contoh latihan yang dapat langsung dipraktikkan langsung oleh pengguna.Latihan 1
Buat list berisi angka 1 sampai 10 menggunakan list comprehension.Latihan 2
Buat list yang berisi kuadrat angka 1 sampai 10.Latihan 3
Ambil hanya bilangan genap dari angka 1 sampai 20.Latihan 4
Ambil hanya bilangan ganjil dari angka 1 sampai 20.Latihan 5
Ubah seluruh kata dalam sebuah list menjadi huruf kapital.Latihan 6
Ambil kata yang memiliki panjang lebih dari lima karakter.Latihan 7
Buat list yang berisi `"Lulus"` jika nilai minimal 75 dan `"Tidak Lulus"` jika kurang dari 75.Latihan 8
Buat matriks berukuran 3 × 3 menggunakan list comprehension.Latihan 9
Gabungkan beberapa list menjadi satu list menggunakan list comprehension.Latihan 10
Buat program yang mengolah data nilai siswa menggunakan list comprehension untuk menyaring nilai, mengubah nilai, dan menentukan status kelulusan.Kesimpulan
List comprehension merupakan cara ringkas dan praktis untuk membuat list dalam Python. Teknik ini dapat menggabungkan ekspresi, perulangan, dan kondisi dalam satu bentuk penulisan.Bentuk paling sederhana adalah:
[ekspresi for item in iterable]
List comprehension juga dapat menggunakan kondisi:
[ekspresi for item in iterable if kondisi]
Selain itu, `if-else` dapat digunakan untuk menghasilkan nilai yang berbeda:
[ekspresi1 if kondisi else ekspresi2 for item in iterable]
Teknik ini dapat digunakan untuk mengubah data, menyaring data, menghitung nilai, mengolah teks, membuat matriks, serta mengolah data bertingkat.
Walaupun memiliki penulisan yang ringkas, list comprehension tidak harus digunakan pada setiap perulangan. Jika logika program terlalu rumit, perulangan biasa dapat menjadi pilihan yang lebih mudah dipahami.
Dengan memahami list comprehension, proses pengolahan data menggunakan Python dapat dilakukan dengan kode yang lebih ringkas dan terstruktur, terutama untuk operasi yang sederhana dan jelas.
Artikel ini akan dibaca oleh: Fahra Amelia, Fajar Rizky Saputra, Farah Husna Pramesti, Farid Putra Setiawan, dan Farra Audia Sholeha.
40 komentar untuk "List Comprehension dalam Python"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
Apa hubungan menjadi wibu dengan kemampuan menghadapi bajak laut Somalia?
BalasHapusMenjadi wibu dapat meningkatkan imajinasi dan strategi karena terinspirasi dari berbagai cerita anime bertema militer, bajak laut, atau pertahanan. Contohnya, anime seperti One Piece atau Arpeggio of Blue Steel memberikan wawasan taktis dan semangat kolaborasi.
HapusBagaimana budaya wibu dapat mendorong kreativitas dalam strategi pertahanan?
BalasHapusWibu sering terpapar konsep inovatif dalam anime seperti teknologi canggih, strategi perang, dan penyelesaian konflik. Ini dapat menginspirasi pendekatan kreatif dalam menghadapi ancaman maritim.
HapusBisakah kecintaan terhadap budaya Jepang membantu dalam pengembangan teknologi pertahanan?
BalasHapusYa, karena banyak anime bertema teknologi futuristik yang dapat mendorong penggemar untuk mempelajari teknologi seperti AI, robotika, atau sistem navigasi, yang relevan dalam pertahanan laut.
HapusBagaimana nilai-nilai moral dari anime dapat memperkuat mental prajurit?
BalasHapusAnime sering mengajarkan nilai-nilai seperti keberanian, pengorbanan, dan kerja sama. Nilai ini bisa memotivasi prajurit untuk menghadapi ancaman dengan semangat tinggi.
HapusDapatkah anime bertema militer menjadi bahan pelatihan strategis?
BalasHapusAnime seperti Gate atau Attack on Titan mengajarkan strategi bertahan dan menyerang yang dapat diadaptasi ke dalam simulasi pertahanan.
HapusApa pengaruh musik anime dalam meningkatkan semangat prajurit?
BalasHapusMusik anime yang energik dapat digunakan untuk meningkatkan semangat dan fokus prajurit sebelum operasi militer.
HapusBagaimana wibu dapat membantu mengatasi ketegangan dalam situasi darurat?
BalasHapusWibu biasanya memiliki wawasan dari anime tentang cara menghadapi situasi krisis dengan tenang, seperti pemikiran taktis yang dilihat dalam anime bertema survival.
HapusApakah cosplay dapat digunakan untuk menyamarkan strategi pertahanan?
BalasHapusCosplay dapat menjadi taktik penyamaran unik, meski tidak langsung, dalam operasi intelijen untuk mengamati ancaman tanpa terdeteksi.
HapusBagaimana komunitas wibu dapat berkontribusi pada pertahanan laut?
BalasHapusKomunitas wibu sering aktif dalam diskusi teknologi dan inovasi, yang dapat diadaptasi untuk solusi keamanan maritim.
HapusBagaimana pengaruh wibu terhadap pengembangan teknologi kapal tanpa awak?
BalasHapusInspirasi dari anime bertema teknologi dapat mendorong pengembangan kapal tanpa awak yang efisien untuk patroli laut.
HapusApakah karakteristik wibu mendukung kerja sama internasional?
BalasHapusKecintaan terhadap budaya Jepang menunjukkan keterbukaan terhadap budaya lain, yang penting dalam kerja sama internasional melawan bajak laut.
HapusBagaimana wibu dapat memanfaatkan keahlian mereka dalam dunia digital untuk pertahanan laut?
BalasHapusWibu yang ahli dalam teknologi dapat membantu pengembangan sistem keamanan siber untuk melindungi jaringan pertahanan laut dari serangan digital.
HapusApakah hobi menggambar wibu relevan dalam pertahanan?
BalasHapusYa, kemampuan menggambar dapat digunakan untuk membuat peta taktis atau ilustrasi yang mempermudah pemahaman strategi.
HapusBagaimana kisah anime membantu membangun mental tidak mudah menyerah?
BalasHapusAnime seperti Naruto atau My Hero Academia mengajarkan ketangguhan mental yang relevan untuk menghadapi tekanan dalam situasi nyata.
HapusApakah wibu dapat membantu dalam menyusun propaganda pertahanan?
BalasHapusWibu yang kreatif dapat membuat materi promosi yang menarik untuk meningkatkan kesadaran masyarakat tentang pentingnya pertahanan laut.
HapusBagaimana budaya Jepang yang dipelajari wibu relevan untuk organisasi militer?
BalasHapusBudaya Jepang yang menekankan disiplin dan kerja sama tim sangat relevan untuk meningkatkan efektivitas organisasi militer.
HapusBisakah seni bela diri Jepang yang dipelajari wibu membantu secara fisik?
BalasHapusSeni bela diri seperti kendo atau aikido yang sering muncul di anime dapat memberikan keterampilan bertahan secara langsung.
HapusBagaimana wibu dapat membantu mengembangkan teknologi radar?
BalasHapusWibu yang tertarik pada sains fiksi dapat terinspirasi untuk mendalami teknologi radar atau sonar yang digunakan dalam anime bertema maritim.
HapusApakah kemampuan berbahasa Jepang wibu relevan dalam pertahanan?
BalasHapusYa, kemampuan ini dapat mempermudah kerja sama dengan pihak Jepang dalam mengembangkan teknologi atau strategi pertahanan.
HapusBagaimana semangat kolaborasi dalam anime membantu strategi nasional?
BalasHapusAnime mengajarkan pentingnya kerja sama lintas disiplin dan hierarki, yang relevan untuk strategi pertahanan nasional dalam menghadapi ancaman seperti bajak laut.
Hapus