Python

Daftar Pemahaman dengan Python

Daftar Pemahaman dengan Python
Pemahaman daftar sering digunakan dalam Python untuk menulis pernyataan baris tunggal yang membuat daftar atau kamus baru dengan mengulang objek yang dapat diubah. Artikel ini akan menjelaskan cara menggunakan pemahaman daftar dengan Python, dimulai dengan penjelasan dasar tentang cara kerja loop for di Python.

Untuk Loop dengan Python

Pernyataan for loop dalam Python secara berurutan mengulangi anggota objek, daftar, string, dll. Dibandingkan dengan bahasa pemrograman lain, sintaksnya jauh lebih bersih dan tidak perlu mendefinisikan langkah iterasi secara manual dan memulai iterasi. Meskipun ada cara untuk membuat perilakunya sama dengan bahasa pemrograman lain (tidak akan dibahas dalam artikel ini). Anda juga dapat melakukan beberapa kontrol atas perulangan dengan menggunakan pernyataan seperti lanjutkan, hentikan, lewati, dll. Di bawah ini adalah contoh sederhana dari for loop di Python:

untuk x dalam rentang (10):
cetak (x)

Untuk loop di atas akan mencetak sepuluh angka mulai dari 0 dan berakhir pada 9.

Daftar Pemahaman

Pemahaman daftar tidak lain adalah cara singkat / ringkas untuk menulis multi-baris untuk loop dalam pernyataan satu baris. Contoh pemahaman daftar di bawah ini akan membuat daftar baru sebagai [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] dengan memasukkan semua nilai “x” di dalamnya.

angka = [x untuk x dalam rentang (10)]
cetak (angka)

Perhatikan bahwa pemahaman daftar selalu membuat daftar baru dan tidak mengubah iterable asli yang digunakan dalam ekspresi. Ekspresi pemahaman daftar yang khas harus memiliki klausa "untuk" dan dapat diikuti oleh pernyataan kondisional "jika" dan "lain". Tanpa menggunakan pemahaman daftar, contoh di atas akan ditulis sebagai berikut:

angka = []
untuk x dalam rentang (10):
angka.tambahkan (x)
cetak (angka)

Performa dan Keterbacaan

Pemahaman daftar lebih cepat daripada untuk loop. Namun, kecuali jika Anda mengulangi lebih dari ratusan ribu item, Anda tidak akan melihat peningkatan kinerja yang besar. Sementara pemahaman daftar menyediakan cara ringkas untuk menulis perulangan, ekspresi kompleks dapat menyebabkan pembacaan kode yang buruk dan peningkatan verbositas. Penting untuk menjaga agar kode tetap dapat dibaca, kecuali mencapai kinerja maksimum adalah kebutuhan mutlak untuk program Anda.

Contoh: Menggunakan Sintaks Pemahaman Daftar dengan Kamus dan Set

Kamus python adalah kumpulan elemen yang didefinisikan dalam pasangan nilai kunci sementara satu set adalah kumpulan nilai unik di mana duplikat tidak diperbolehkan. Pemahaman daftar dapat digunakan dengan kamus dan set Python juga. Sintaksnya sedikit berbeda, alih-alih membungkus ekspresi dalam kurung kurawal, Anda sekarang harus menggunakan kurung kurawal. Anda juga akan mendapatkan kamus / set objek baru alih-alih daftar baru.

data = "kota": "new york", "nama": "john doe"
diformat_data = k: v.judul() untuk k,v dalam data.item()
cetak (format_data)

Contoh di atas akan mengonversi nilai string menjadi huruf besar dan membuat kamus baru bernama “formatted_data”, yang outputnya akan menjadi: 'city': 'New York', 'name': 'John Doe'. Anda juga dapat mengubah kamus / set di tempat dengan menentukan variabel kamus yang ada di sisi kiri.

data = "kota": "new york", "nama": "john doe"
data = k: v.judul() untuk k,v dalam data.item()
cetak (data)

Tanpa menggunakan pemahaman kamus, kodenya akan terlihat seperti ini:

data = "kota": "new york", "nama": "john doe"
diformat_data =
untuk k, v dalam data.item():
diformat_data[k] = v.judul()
cetak (format_data)

Karena tidak ada pasangan nilai kunci dalam himpunan, pemahaman himpunan dapat didefinisikan dengan cara yang sama seperti pemahaman daftar. Satu-satunya perbedaan adalah penggunaan kurung kurawal.

Contoh: Multiple For Loops dalam Pemahaman Daftar

Contoh pemahaman daftar yang disebutkan di atas adalah dasar dan menggunakan pernyataan "untuk" tunggal. Di bawah ini adalah contoh yang menggunakan beberapa perulangan for dan pernyataan “jika” bersyarat.

kata sifat = ["Disko", "Eoan", "Fokal", "Seni"]
hewan = ["Dingo", "Ermine", "Fossa", "Berang-berang"]
nama kode = [x + " " + y untuk x dalam kata sifat untuk y pada hewan jika y.dimulai dengan(x[0])]
cetak (nama kode)

Kode akan menampilkan ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] sebagai output. Dua for loop melewati daftar "kata sifat" dan "hewan" dan anggotanya digabungkan menggunakan spasi, hanya jika huruf pertama dari kedua kata itu sama. Tanpa menggunakan pemahaman daftar, kodenya akan terlihat seperti ini:

kata sifat = ["Disko", "Eoan", "Fokal", "Seni"]
hewan = ["Dingo", "Ermine", "Fossa", "Berang-berang"]
nama kode = []
untuk x dalam kata sifat:
untuk y pada hewan:
jika kamu.dimulai dengan(x[0]):
nama kode.tambahkan(x + " " + y)
cetak (nama kode)

Contoh: Daftar Pemahaman dengan if-else Clause

Contoh di bawah ini akan menunjukkan penggunaan pernyataan if dan else dalam pemahaman daftar.

nomor_daftar = [1, 2, 3, 4]
daftar_lain = [5, 6, 7, 8]
result = [Benar  jika (x + y) % 2 == 0 else Salah untuk x di number_list untuk y di another_list]
cetak (hasil)

Saat mengulang melalui dua daftar, pemahaman daftar di atas memeriksa apakah jumlah pasangan elemen genap atau tidak. Menjalankan kode di atas akan menampilkan [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] sebagai output. Tanpa menggunakan pemahaman daftar, kodenya akan terlihat seperti ini:

nomor_daftar = [1, 2, 3, 4]
daftar_lain = [5, 6, 7, 8]
hasil = []
untuk x di number_list:
untuk y di daftar_lain:
jika (x + y) % 2 == 0:
hasil.tambahkan (Benar)
lain:
hasil.tambahkan (Salah)
cetak (hasil)

Kesimpulan

Pemahaman daftar menyediakan cara yang bagus untuk menulis pernyataan loop yang bersih dan ringkas. Namun, mereka dapat dengan cepat menjadi kompleks dan sulit dipahami jika banyak loop dan pernyataan kondisional digunakan. Pada akhirnya, ini sampai pada tingkat kenyamanan seorang programmer tetapi umumnya adalah ide yang baik untuk menulis kode yang eksplisit, mudah dibaca, dan mudah di-debug daripada menggunakan steno secara berlebihan.

Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...
Petakan ulang tombol mouse Anda secara berbeda untuk perangkat lunak yang berbeda dengan Kontrol Tombol X-Mouse
Mungkin Anda membutuhkan alat yang dapat membuat kontrol mouse Anda berubah dengan setiap aplikasi yang Anda gunakan. Jika demikian, Anda dapat mencob...
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...