Bagaimana untuk menggunakan pemahaman senarai Python

WBOY
Lepaskan: 2023-05-20 08:10:13
ke hadapan
1952 orang telah melayarinya

Pemahaman senarai Python

Pemahaman senarai ialah pintasan untuk membina senarai dalam Python Anda boleh membuat senarai menggunakan kod ringkas.

fungsi julat( )

Fungsi julat() Python boleh digunakan untuk membuat senarai integer, biasanya digunakan dalam untuk gelung.

sintaks julat(): julat(mula, berhenti[, langkah ])

mula: Pengiraan bermula dari mula, lalai adalah dari 0 (selang tertutup), contohnya: julat(5) bersamaan dengan julat(0,5).

berhenti: Mengira ke akhir hentian, tetapi tidak termasuk hentian (selang terbuka). Contohnya: julat(0,5) ialah [0, 1, 2, 3, 4], tidak termasuk 5.

langkah: langkah Panjang, perbezaan antara dua nilai bersebelahan, lalai ialah 1. Contohnya: julat(0,5) bersamaan dengan julat(0, 5, 1).

Mengapa kita sebut julat( sebelum pemahaman senarai ) , kerana pemahaman senarai menjana senarai melalui objek boleh lelar, julat() boleh dikatakan sebagai objek boleh lelar yang paling biasa digunakan dalam pemahaman senarai Untuk pemahaman senarai, julat() ialah salah satu intipati 1. Tanpa julat(), kebolehbacaan. dan kesederhanaan pemahaman senarai akan dikurangkan dengan banyaknya

2. Pemahaman senarai

Pemahaman senarai merujuk kepada Senarai penciptaan gelung.

Gelung for mempunyai julat aplikasi yang sangat luas. senario dan juga boleh digunakan untuk membuat senarai, dan pemahaman senarai adalah bersamaan dengan versi ringkas bagi gelung untuk mencipta senarai.

# for循环
list_a = list()
for a in range(5):
    list_a.append(a)
print(list_a)
Salin selepas log masuk
rrree

Di atas masing-masing adalah Kod untuk mencipta senarai menggunakan untuk gelung dan pemahaman senarai . Keputusan list_a dan list_b adalah sama, kedua-duanya [0, 1, 2, 3, 4].

Mari kita lihat pemahaman senarai yang lebih rumit :

# 列表推导式
list_b = [b for b in range(5)]
print(list_b)
Salin selepas log masuk

Hasil jalankan:

# in后面跟其他可迭代对象,如字符串
list_c = [7 * c for c in "python"]
print(list_c)
 
# 带if条件语句的列表推导式
list_d = [d for d in range(6) if d % 2 != 0]
print(list_d)
 
# 多个for循环
list_e = [(e, f * f) for e in range(3) for f in range(5, 15, 5)]
print(list_e)
 
# 嵌套列表推导式,多个并列条件
list_g = [[x for x in range(g - 3, g)] for g in range(22) if g % 3 == 0 and g != 0]
print(list_g)
Salin selepas log masuk

Penjelasan kod:

1 Pemahaman senarai akan merentasi objek boleh lelar berikut, dan kemudian melakukan operasi mengikut ungkapan sebelum untuk, Jana senarai akhir.

2. . Jika terdapat pernyataan bersyarat, untuk traversal diikuti dengan pertimbangan bersyarat.

3 Jika terdapat berbilang untuk gelung, nombor akhir data ialah hasil darab Cartesan bagi gelung.

<. 🎜>4. Derivasi senarai bersarang boleh dilakukan, iaitu sama seperti prinsip gelung bersarang.

3. Kebolehbacaan kod

Bagi mereka yang tidak biasa dengan pemahaman senarai, anda. boleh menggunakan gelung for untuk mencapai fungsi yang sama, tetapi ia memerlukan beberapa baris kod, manakala pemahaman senarai hanya memerlukan satu baris kod.

Ramai orang akan mengatakan bahawa kod itu ringkas Tetapi kebolehbacaan berkurangan. Sebenarnya, ia tidak berlaku apabila kita sudah biasa dengan pemahaman senarai (kita akan menjadi biasa dengannya selepas menulisnya beberapa kali), fungsi kod itu boleh dilihat dengan mudah sepintas lalu, tetapi pada dasarnya mustahil untuk baca kod gelung for sepintas lalu Terutama apabila gelung for yang mencipta senarai bersarang dalam gelung lain bagi logik perniagaan, penggunaan pemahaman senarai yang paling mudah dibaca.

Pada Pada masa yang sama, pemahaman senarai mempunyai peranan tempatan mereka sendiri dalam Python3 Domain, sama seperti fungsi Pembolehubah dan tugasan di dalam ungkapan hanya berfungsi secara setempat dengan nama yang sama dalam konteks ungkapan juga boleh dirujuk secara normal, dan pembolehubah tempatan tidak akan menjejaskan mereka.

Dalam erti kata lain, terbitan senarai tidak akan menghadapi masalah kebocoran pembolehubah, dan operasi penetapan dalam terbitan senarai tidak mungkin menjejaskan pembolehubah dengan nama yang sama dalam konteks terbitan senarai.

Sudah tentu, bukan semua senario disyorkan untuk menggunakan senarai Sebagai contoh: jika kod terbitan senarai melebihi dua baris, anda harus mempertimbangkan untuk menukar kepada gelung for yang melebihi dua baris adalah benar-benar tidak boleh dibaca . Prinsip umum adalah hanya menggunakan Gunakan terbitan senarai untuk mencipta senarai baharu, dan cuba simpannya sesingkat mungkin.

4 Derivasi kamus

Sejak Python 2.7, konsep terbitan senarai telah dipindahkan ke kamus, sekali gus mencipta derivasi kamus (Anda akan melihat terbitan tetapan nanti).

Jika konsep terbitan senarai sudah biasa kepada anda, tidak sukar untuk menerima terbitan kamus pada kod:

[&#39;ppppppp&#39;, &#39;yyyyyyy&#39;, &#39;ttttttt&#39;, &#39;hhhhhhh&#39;, &#39;ooooooo&#39;, &#39;nnnnnnn&#39;]
[1, 3, 5]
[(0, 25), (0, 100), (1, 25), (1, 100), (2, 25), (2, 100)]
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20]]
Salin selepas log masuk

Hasil berjalan:

# 因为key是唯一的,所以最后value都是1
dict_a = {key: value for key in &#39;python&#39; for value in range(2)}
print(dict_a)
 
# 可以根据键来构造值
dict_b = {key: key * key for key in range(6)}
print(dict_b)
 
# 遍历一个有键值关系的可迭代对象
list_phone = [(&#39;HUAWEI&#39;, &#39;华为&#39;), (&#39;MI&#39;, &#39;小米&#39;), (&#39;OPPO&#39;, &#39;OPPO&#39;), (&#39;VIVO&#39;, &#39;VIVO&#39;)]
dict_c = {key: value for key, value in list_phone}
print(dict_c)
Salin selepas log masuk

5. Tetapkan terbitan

Python2.7 bukan sahaja membawa terbitan kamus, tetapi juga terbitan set.

Begitu juga, mari kita lihat kod secara langsung, Dengan cara ini, anda boleh melihat derivasi set secara intuitif

{&#39;p&#39;: 1, &#39;y&#39;: 1, &#39;t&#39;: 1, &#39;h&#39;: 1, &#39;o&#39;: 1, &#39;n&#39;: 1}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
{&#39;HUAWEI&#39;: &#39;华为&#39;, &#39;MI&#39;: &#39;小米&#39;, &#39;OPPO&#39;: &#39;OPPO&#39;, &#39;VIVO&#39;: &#39;VIVO&#39;}
Salin selepas log masuk

Hasil berjalan:

# 遍历一个可迭代对象生成集合
set_a = {value for value in &#39;有人云淡风轻,有人负重前行&#39;}
print(set_a)
Salin selepas log masuk
Set tidak teratur dan tidak berulang, jadi berulang. elemen akan dialih keluar secara automatik, dan setiap larian akan memaparkan susunannya berbeza.

Ia boleh diringkaskan daripada kod di atas:

Kefahaman yang ditetapkan adalah untuk menggantikan [] pemahaman senarai dengan {}, dan pemahaman kamus adalah untuk menyimpulkan gabungan dua nilai Dibina menjadi pasangan nilai kunci

Selain itu, sama ada pemahaman kamus atau pemahaman yang ditetapkan, ia boleh diikuti dengan jika. penyataan bersyarat, gelung bersarang, dsb. seperti pemahaman senarai Spesifikasinya boleh berdasarkan Penggunaan anda sendiri mengikut keperluan anda.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pemahaman senarai Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!