Cara menggunakan python list comprehension

Cara Membuat List Comprehension di Bahasa Pemrograman Python | pemrograman | komputer | bahasa python

List comprehension adalah sebuah cara pembuatan list secara singkat di bahasa pemrograman python tanpa membuat sebuah function. Jadi sobat akan membuat sebuah program di dalam list dan akan menghasilkan output yang sama ketika kita membuat program dengan sebuah function. Akan tetapi list comprehension biasanya digunakan hanya untuk membuat program-program yang simple. Misalnya program untuk mencetak angka-angka kuadrat, mencetak matriks, mencetak angka genap, mencetak angka ganjil, dan lain-lain.

Formula yang biasa digunakan adalah seperti ini : 

[expression for iter var in iterable]

Dan formula yang lebih lanjut, biasanya membutuhkan kondisi-kondisi tertenru adalah seperti ini :

[expression for iter var in iterable if condition]

Untuk memperjelas materi kita hari ini, langsung saja scroll ke bawah untuk melihat contoh-contohnya sob :

NB : Saya menggunakan mode interactive pada materi ini dengan alasan agar tidak menghabiskan waktu. Jika sobat menulis di 

  1. Membuat list cetak bilangan asli dengan range.

    [x for x in range(1,11)]

    "var x adalah nilai yang akan dicetak."

  2. Membuat list cetak kuadrat dari sebuah bilangan dengan range.

    [x**2 for x in range(1,11)]

    "x**2 artinya nilai dari var x dikuadratkan."

  3. Membuat list yang berisi tuple.

    [(x,x**2) for x in range(1,11)]


    "Tuple di dalam list berisi pasangan antara bilangan asli dan hasil kuadratnya."


  4. Membuat list yang berisi bilangan genap.

    [x for x in range(1,51) if x % 2 == 0]


    "Mencetak var x dengan nilai bilangan genap dalam range 1 sampai 51."

  5. Membuat list yang berisi satu bilangan dengan banyak n.

    [3 for x in range(10)]


    "Mencetak angka 3 sejumlah 10 elemen."

  6. Membuat matiks 0 dengan 3 dimensi (3x3).

    [[0 for y in range(3)]for x in range(3)]


    "Mencetak matriks 0 (3x3)."

  7. Membuat matrik identitas (4x4).

    [[1 if y == x else 0 for y in range(4)]for x in range(4)]


    "Cara membaca list comprehension di atas adalah : Matriks dasarnya adalah matriks 0 dengan dimensi 4 (4x4). Akan tetapi yang membedakan adalah adanya instruksi if yang menyebabkan beberapa elemen menjadi angka 1. Jika nilai var y sama dengan nilai var x dalam looping (perulangan) tersebut, maka elemen yang dicetak adalah angka 1."


  8. Membuat list yang berisi huruf vokal dari suatu string kalimat.

    [x for x in "Belajar bahasa python" if x in "AIUEOaiueo"]


    "Looping, dengan mengindeks string "Belajar bahasa python" satu per satu dan diwakili dengan var x. Kemudian mengambil keputusan bahwa nilai yang dicetak adalah nilai var x yang berada dalam daftar string "AIUEOaiueo".

Gambar dibawah ini adalah hasil dari contoh-contoh di atas :

Cara menggunakan python list comprehension

Jika ada bagian yang salah atau belum dipahami, saya berharap sobat bisa membenarkan atau bertanya di kolom komentar. Saya akan berusaha memperbaiki atau menjawab pertanyaan sesuai kemampuan saya. Terimakasih atas kunjungan sobat :)

List Comprehension merupakan pendefinisian pada tipe data list secara singkat tanpa membuat sebuah fungsi. Format dasar dari pembuatan list comprehension adalah sebagai berikut:

listbaru = [expression for item in iterable if condition == True]

Berikut ini adalah contoh menampilkan sebuah list tanpa metode list comprehension:

listmerk = ["Asus", "Acer", "HP", "Lenovo", "Dell", "Apple"]
listbaru = []

for x in listmerk:
  if "A" in x:
    listbaru.append(x)
    
print(listbaru)

Kode program di atas maksudnya adalah kita ingin mengambil item dari dalam list yang hanya mengandung karakter “A” saja.

Jika kita bandingkan dengan menggunakan metode list comprehension maka kodenya akan menjadi seperti berikut:

listmerk = ["Asus", "Acer", "HP", "Lenovo", "Dell", "Apple"]
listbaru = [x for x in listmerk if "A" in x]
print(listbaru)

Hasil dari kode program di atas sama persis dengan contoh pada kode program sebelumnya, namun terlihat lebih singkat.

Penggunaan list comprehension di atas mengembalikan sebuah list dengan nilai baru, jadi list pada variabel listmerk nilainya tetap atau tidak berubah.

Berikut contoh lain dari penggunaan list comprehension:

listmerk = ["Asus", "Acer", "HP", "Lenovo", "Dell", "Apple"]
listbaru = [x for x in listmerk if x != "Asus"]
print(listbaru)

Hasil dari kode program di atas adalah ['Acer', 'HP', 'Lenovo', 'Dell', 'Apple'], pertama kita lakukan perulangan pada listmerk dan buat sebuah kondisi jika item pada list tidak sama dengan kata “Asus” maka simpan hasilnya pada variable listbaru.

Kita juga bisa menghilangkan kondisi if pada kode program di atas:

listmerk = ["Asus", "Acer", "HP", "Lenovo", "Dell", "Apple"]
listbaru = [x for x in listmerk]
print(listbaru)

Contoh lain menggunakan kondisi if:

listbaru = [x for x in range(10) if x < 5]
print(listbaru)

Kode program di atas akan melakukan perulangan mulai dari angka 0 hingga 9 yakni hasil dari fungsi range(10), selanjutnya pada kondisi if akan mengecek apakah nilai x kurang dari angka 5, jika bernilai True maka simpan ke dalam variabel listbaru. Hasil yang dikembalikan adalah [0, 1, 2, 3, 4].

Selanjutnya kita juga dapat memanipulasi sebuah ekspresi atau item saat ini sebelum disimpan. Sebagai contoh:

listmerk = ["Asus", "Acer", "HP", "Lenovo", "Dell", "Apple"]
listbaru = [x.lower() for x in listmerk]
print(listbaru)

Kode program di atas akan mengubah semua item pada listmerk menjadi huruf kecil semua dan menyimpannya pada listbaru.

Note: Sebuah expression merupakan item saat ini dalam iterasi, tetapi juga merupakan suatu hasil dari list comprehension. Jadi kita dapat memanipulasi nilainya menggunakan fungsi-fungsi pada Python, seperti upper(), lower(), dan sebagainya.

Kita juga dapat menggunakan kondisi if else pada expression di list comprehension, sebagai contoh:

listmerk = ["Asus", "Acer", "HP", "Lenovo", "Dell", "Apple"]
listbaru = [x if x != "Asus" else "Samsung" for x in listmerk]
print(listbaru)

Kode program di atas akan melakukan pengecekan apakah x sama dengan kata “Asus”, setelah melakukan perulangan for pada listmerk. Jika bernilai True, ubah nilainya menjadi kata “Samsung”.