Pemahaman Python: Pemahaman Daftar, Dikte, dan Kumpulan

Tulis Python yang lebih bersih dan lebih cepat. Daftar master, kamus, dan pemahaman kumpulan dengan contoh praktis, kondisi pemfilteran, dan loop bersarang.

Coba di Editor

Ikhtisar

Pemahaman adalah salah satu fitur Python yang paling disukai, menawarkan sintaksis yang ringkas dan mudah dibaca untuk membuat koleksi baru (daftar, kamus, dan kumpulan) dari iterable yang sudah ada. Daripada menulis perulangan `for` multi-baris dan menambahkan item secara manual, pemahaman memungkinkan Anda melakukan transformasi, pemfilteran, dan penetapan yang sama dalam satu baris kode yang ekspresif.

Pemahaman daftar adalah varian yang paling umum, disusun sebagai `[ekspresi untuk item dalam kondisi iterable if]`. Di balik terpalnya, Python mengoptimalkan pemahaman agar berjalan pada kecepatan mendekati C, sering kali mengungguli perulangan `for` manual yang setara karena perulangan ditangani oleh penerjemah yang mendasarinya. Mereka ideal untuk transformasi cepat—seperti mengonversi daftar suhu Celcius ke Fahrenheit, atau mengekstrak kunci tertentu dari daftar catatan pengguna.

Selain daftar, Python mendukung pemahaman Kamus dan Kumpulan. Pemahaman kamus, yang didefinisikan dengan kurung kurawal dan pasangan nilai kunci (misalnya, `{key: value for x in iterable}`), sangat berguna untuk membalik pasangan pemetaan atau mengurai metadata. Pemahaman kumpulan menghasilkan koleksi unik dengan menghapus duplikat secara otomatis. Meskipun pemahaman sangat bermanfaat, pengembang harus menghindari membuatnya terlalu rumit; jika pemahaman memerlukan perulangan bertumpuk atau kondisi kompleks, perulangan `for` tradisional biasanya lebih mudah dibaca dan dipelihara.

Kode & Output Eksekusi

Mendemonstrasikan transformasi daftar, pemfilteran bersyarat, dan membuat kamus dari input pemetaan.

comprehensions.py
Coba di Editor
numbers = [1, 2, 3, 4, 5, 6]

# List comprehension with filter (even squares)
even_squares = [x**2 for x in numbers if x % 2 == 0]

# Set comprehension (unique word lengths)
words = ["python", "java", "ruby", "python"]
word_lengths = {len(w) for w in words}

# Dictionary comprehension (number: square)
square_map = {n: n**2 for n in numbers[:4]}

print(f"Even squares: {even_squares}")
print(f"Unique lengths: {word_lengths}")
print(f"Square mapping: {square_map}")
Keluaran Terminal
Even squares: [4, 16, 36]
Unique lengths: {4, 6}
Square mapping: {1: 1, 2: 4, 3: 9, 4: 16}

Implementasi Langkah demi Langkah

  • Memfilter nilai kosong atau data tidak valid dari log
  • Memetakan muatan API ke dalam pemetaan data nilai kunci
  • Memformat baris database dengan cepat menjadi daftar sederhana

Pertanyaan yang Sering Diajukan

Apakah pemahaman lebih cepat dari putaran normal?

Ya, dalam banyak kasus, mereka lebih cepat karena iterasinya ditangani oleh kode C yang dioptimalkan dalam interpreter Python.

Haruskah saya selalu menggunakan pemahaman?

Tidak. Keterbacaan kode adalah prioritas python. Jika pemahaman memiliki logika bertumpuk atau lebih panjang dari satu atau dua baris, perulangan tradisional lebih disukai.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

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