Cara Menggunakan Pemahaman Daftar dengan Python

Pelajari cara menggunakan pemahaman daftar dengan Python. Tulis loop ringkas, terapkan filter bersyarat, dan buat matriks dengan sintaksis visual yang bersih.

Coba Solusi ini di Editor

Ikhtisar

Pemahaman daftar adalah salah satu fitur Python yang paling populer dan ikonik. Ini menawarkan sintaksis yang ringkas, ekspresif, dan sangat mudah dibaca untuk membuat daftar baru dari iterable yang sudah ada (seperti daftar, rentang, atau tupel). Ini memungkinkan Anda mengganti loop `for` multi-baris dan pernyataan inisialisasi daftar dengan satu baris kode.

Sintaks dasar pemahaman daftar adalah `[ekspresi untuk item dalam iterable]`. Di balik terpalnya, sintaksis ini sangat dioptimalkan dalam implementasi Python, membuatnya berjalan lebih cepat daripada loop `for` standar yang menambahkan item menggunakan `.append()`. Ini sangat ideal untuk menerapkan transformasi matematika atau memodifikasi elemen.

Pemahaman daftar juga mendukung pemfilteran bersyarat menggunakan klausa `if`, memungkinkan Anda menyertakan elemen secara selektif (misalnya, `[x untuk x dalam data jika x % 2 == 0]`). Meskipun sangat ampuh, pemahaman daftar harus digunakan dengan hati-hati: jika pemahaman Anda sangat kompleks atau bertumpuk, lebih baik menulis loop standar untuk menjaga keterbacaan.

Kode & Output Eksekusi

Skrip ini menunjukkan pemahaman daftar dasar, pemfilteran dengan kondisi, dan transformasi nilai string.

list_comprehensions.py
Coba di Editor
# 1. Traditional for-loop way to build a list
squares_loop = []
for x in range(1, 6):
    squares_loop.append(x**2)
print("Loop squares:", squares_loop)

# 2. List comprehension way (same outcome)
squares_comp = [x**2 for x in range(1, 6)]
print("Comp squares:", squares_comp)

# 3. Filtering elements with an 'if' clause (even numbers only)
evens = [n for n in range(1, 11) if n % 2 == 0]
print("Even numbers:", evens)

# 4. String modifications using comprehensions
names = ["alice", "bob", "charlie"]
caps = [name.capitalize() for name in names]
print("Capitalized:", caps)
Keluaran Terminal
Loop squares: [1, 4, 9, 16, 25]
Comp squares: [1, 4, 9, 16, 25]
Even numbers: [2, 4, 6, 8, 10]
Capitalized: ['Alice', 'Bob', 'Charlie']

Implementasi Langkah demi Langkah

  • Identifikasi badan perulangan dan ekspresi yang ingin Anda tangkap dalam daftar.
  • Susun pemahaman sebagai [ekspresi untuk item yang dapat diubah].
  • Tambahkan kondisi if opsional di akhir untuk memfilter elemen secara dinamis.

Pertanyaan yang Sering Diajukan

Bisakah saya menggunakan pernyataan if-else di dalam pemahaman daftar?

Iya! Tempatkan klausa if-else sebelum perulangan for: [x if x > 0 else 0 for x in data].

Apa perbedaan antara pemahaman daftar dan ekspresi generator?

Pemahaman daftar menggunakan tanda kurung siku dan mengembalikan daftar lengkap secara instan. Ekspresi generator menggunakan tanda kurung dan mengembalikan objek generator malas, yang menghemat memori untuk kumpulan data besar.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.