Python

Senaraikan Komprehensif dalam Python

Senaraikan Komprehensif dalam Python
Kefahaman senarai sering digunakan dalam Python untuk menulis pernyataan baris tunggal yang membuat senarai atau kamus baru dengan mengulangi objek berulang. Artikel ini akan menerangkan cara menggunakan pemahaman senarai di Python, bermula dengan penjelasan asas mengenai bagaimana gelung berfungsi di Python.

Untuk Gelung di Python

Pernyataan untuk gelung di Python secara berurutan mengulangi anggota objek, senarai, rentetan dll. Berbanding dengan bahasa pengaturcaraan lain, sintaksnya jauh lebih bersih dan tidak memerlukan menentukan langkah lelaran secara manual dan memulakan lelaran. Walaupun ada cara untuk membuat perilakunya sama dengan bahasa pengaturcaraan lain (tidak akan dibahas dalam artikel ini). Anda juga boleh melakukan kawalan terhadap gelung dengan menggunakan pernyataan seperti meneruskan, rehat, lulus dll. Berikut adalah contoh mudah untuk gelung di Python:

untuk julat x (10):
cetak (x)

Gelung untuk di atas akan mencetak sepuluh nombor bermula dari 0 dan berakhir pada 9.

Senaraikan Kefahaman

Pemahaman senarai tidak lain adalah cara ringkas / ringkas untuk menulis pelbagai baris untuk gelung dalam pernyataan satu pelapik. Contoh pemahaman senarai di bawah akan membuat senarai baru sebagai [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] dengan memasukkan semua nilai "x" di dalamnya.

nombor = [x untuk x dalam julat (10)]
mencetak (nombor)

Perhatikan bahawa pemahaman senarai selalu membuat senarai baru dan tidak mengubah iterabil semula yang digunakan dalam ungkapan. Ungkapan pemahaman senarai khas mesti mempunyai klausa "untuk" dan dapat diikuti dengan pernyataan bersyarat "jika" dan "lain". Tanpa menggunakan pemahaman senarai, contoh di atas akan ditulis dengan cara berikut:

nombor = []
untuk julat x (10):
nombor.tambahkan (x)
cetak (nombor)

Prestasi dan Kebolehbacaan

Pemahaman senarai lebih pantas daripada gelung. Walau bagaimanapun, melainkan jika anda mengulangi lebih dari beratus-ratus ribu item, anda tidak akan melihat peningkatan prestasi yang besar. Walaupun pemahaman senarai menyediakan cara ringkas untuk menulis untuk gelung, ungkapan kompleks dapat menyebabkan pembacaan kod yang lemah dan peningkatan ketajaman. Penting untuk memastikan kod dapat dibaca, kecuali mencapai prestasi maksimum adalah keperluan mutlak untuk program anda.

Contoh: Menggunakan Sintaks Komprehensif Senarai dengan Kamus dan Set

Kamus python adalah kumpulan elemen yang ditentukan dalam pasangan nilai-kunci sementara satu set adalah kumpulan nilai unik di mana pendua tidak dibenarkan. Pemahaman senarai boleh digunakan dengan kamus dan set Python juga. Sintaksnya sedikit berbeza, bukannya membungkus ungkapan dengan pendakap persegi, sekarang anda harus menggunakan pendakap kerinting. Anda juga akan mendapat kamus / set objek baru dan bukannya senarai baru.

data = "bandar": "new york", "name": "john doe"
diformat_data = k: v.tajuk () untuk k, v dalam data.barang ()
cetak (diformat_data)

Contoh di atas akan menukar nilai rentetan menjadi huruf besar dan membuat kamus baru bernama "formatted_data", yang outputnya adalah: 'city': 'New York', 'name': 'John Doe'. Anda juga boleh menukar kamus / set di tempat dengan menentukan pembolehubah kamus yang ada di sebelah kiri.

data = "bandar": "new york", "name": "john doe"
data = k: v.tajuk () untuk k, v dalam data.barang ()
mencetak (data)

Tanpa menggunakan pemahaman kamus, kodnya akan kelihatan seperti ini:

data = "bandar": "new york", "name": "john doe"
diformat_data =
untuk data k, v dalam.item ():
diformat_data [k] = v.tajuk ()
cetak (diformat_data)

Oleh kerana tidak ada pasangan kunci-nilai dalam set, pemahaman satu set dapat didefinisikan dengan cara yang sama seperti pemahaman daftar. Satu-satunya perbezaan adalah penggunaan pendakap kerinting.

Contoh: Berganda Untuk Gelung dalam Pemahaman Senarai

Contoh pemahaman senarai yang disebutkan di atas adalah asas dan menggunakan satu pernyataan “untuk”. Di bawah ini adalah contoh yang menggunakan beberapa untuk gelung dan pernyataan bersyarat "if".

kata sifat = ["Disco", "Eoan", "Focal", "Artful"]
haiwan = ["Dingo", "Ermine", "Fossa", "Beaver"]
nama kod = [x + "" + y untuk x dalam kata sifat untuk y pada haiwan jika y.permulaan dengan (x [0])]
cetak (nama kod)

Kod tersebut akan menunjukkan ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] sebagai output. Kedua-dua gelung tersebut merangkumi senarai "kata sifat" dan "haiwan" dan anggotanya digabungkan menggunakan ruang, hanya jika huruf pertama kedua-dua kata itu sama. Tanpa menggunakan pemahaman senarai, kodnya akan kelihatan seperti ini:

kata sifat = ["Disco", "Eoan", "Focal", "Artful"]
haiwan = ["Dingo", "Ermine", "Fossa", "Beaver"]
nama kod = []
untuk kata sifat x dalam:
untuk haiwan dalam haiwan:
sekiranya y.permulaan dengan (x [0]):
nama kod.tambahkan (x + "" + y)
cetak (nama kod)

Contoh: Senarai Pemahaman dengan Klausa if-else

Contoh di bawah akan menunjukkan penggunaan pernyataan jika dan yang lain dalam pemahaman senarai.

number_list = [1, 2, 3, 4]
senarai_ lain = [5, 6, 7, 8]
hasil = [Benar jika (x + y)% 2 == 0 yang lain Salah untuk x dalam nombor_daftar untuk y dalam senarai_ yang lain]
cetak (hasil)

Semasa melihat dua senarai, pemahaman senarai di atas memeriksa sama ada jumlah pasangan unsur itu sama atau tidak. Menjalankan kod di atas akan menunjukkan kepada anda [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] sebagai output. Tanpa menggunakan pemahaman senarai, kodnya akan kelihatan seperti ini:

number_list = [1, 2, 3, 4]
senarai_ lain = [5, 6, 7, 8]
hasil = []
untuk x dalam nombor_ senarai:
untuk y dalam senarai_ lain:
jika (x + y)% 2 == 0:
hasil.tambahkan (Betul)
lain:
hasil.tambahkan (Salah)
cetak (hasil)

Kesimpulannya

Kefahaman senarai menyediakan cara yang baik untuk menulis pernyataan gelung yang bersih dan ringkas. Walau bagaimanapun, mereka dengan cepat menjadi rumit dan sukar difahami jika banyak gelung dan pernyataan bersyarat digunakan. Pada akhirnya, ia mencapai tahap keselesaan pengaturcara tetapi pada umumnya adalah idea yang baik untuk menulis kod yang eksplisit, mudah dibaca, dan mudah debug dan bukannya menggunakan kod pendek.

5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...
Battle For Wesnoth 1.13.6 Pembangunan Dikeluarkan
Battle For Wesnoth 1.13.6 dilancarkan bulan lalu, adalah rilis pengembangan keenam di 1.13.siri x dan memberikan sejumlah penambahbaikan, terutamanya ...
Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...