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.
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.
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}")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
Pelajari segala sesuatu tentang daftar Python. Temukan cara membuat, mengiris, memodifikasi, dan melakukan iterasi melalui array dengan Python secara asli.
Kamus PythonKamus Master Python. Pelajari cara menyimpan, mengambil, dan menangani data pasangan nilai kunci. Memahami kinerja dan praktik terbaik untuk pemetaan.
Himpunan PythonKumpulan master dengan Python. Pelajari cara menyimpan nilai unik, mengeksekusi persimpangan, penyatuan, perbedaan, dan memahami manfaat kinerja hashing.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Cara Mengurutkan Daftar dengan Python
Pelajari cara mengurutkan daftar dengan Python menggunakan metode sortir() dan fungsi sortir(). Temukan contoh pengurutan kunci khusus dan urutan terbalik.
Lembar
Tulis pemahaman daftar, kamus, himpunan, dan generator yang ringkas dan mudah dibaca dengan Python.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.