Jadual Kandungan
Pemahaman senarai Python
fungsi julat( )
2. Pemahaman senarai
Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk menggunakan pemahaman senarai Python

Bagaimana untuk menggunakan pemahaman senarai Python

May 20, 2023 am 08:10 AM
python

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengintegrasikan perkhidmatan Node.js atau Python dengan cekap di bawah seni bina lampu? Bagaimana untuk mengintegrasikan perkhidmatan Node.js atau Python dengan cekap di bawah seni bina lampu? Apr 01, 2025 pm 02:48 PM

Ramai pemaju laman web menghadapi masalah mengintegrasikan perkhidmatan node.js atau python di bawah seni bina lampu: lampu sedia ada (Linux Apache MySQL PHP) Laman web seni bina memerlukan ...

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apakah sebabnya mengapa fail penyimpanan berterusan saluran paip tidak dapat ditulis apabila menggunakan crawler scapy? Apakah sebabnya mengapa fail penyimpanan berterusan saluran paip tidak dapat ditulis apabila menggunakan crawler scapy? Apr 01, 2025 pm 04:03 PM

Apabila menggunakan crawler scapy, sebab mengapa fail penyimpanan berterusan paip tidak boleh ditulis? Perbincangan Ketika belajar menggunakan Crawler Scapy untuk Crawler Data, anda sering menemui ...

Python Hourglass Graph Lukisan: Bagaimana untuk mengelakkan kesilapan yang tidak ditentukan? Python Hourglass Graph Lukisan: Bagaimana untuk mengelakkan kesilapan yang tidak ditentukan? Apr 01, 2025 pm 06:27 PM

Bermula dengan Python: Lukisan Grafik Hourglass dan Pengesahan Input Artikel ini akan menyelesaikan masalah definisi berubah -ubah yang dihadapi oleh pemula python dalam program lukisan grafik Hourglass. Kod ...

Apakah sebabnya mengapa Pool Proses Python mengendalikan permintaan TCP serentak dan menyebabkan pelanggan terjebak? Apakah sebabnya mengapa Pool Proses Python mengendalikan permintaan TCP serentak dan menyebabkan pelanggan terjebak? Apr 01, 2025 pm 04:09 PM

Proses Python Pool mengendalikan permintaan TCP serentak yang menyebabkan pelanggan terjebak. Apabila menggunakan Python untuk pengaturcaraan rangkaian, adalah penting untuk mengendalikan permintaan TCP serentak dengan cekap. …

Bagaimana untuk melihat fungsi asal yang terkandung secara dalaman oleh python funcools.partial Object? Bagaimana untuk melihat fungsi asal yang terkandung secara dalaman oleh python funcools.partial Object? Apr 01, 2025 pm 04:15 PM

Sangat meneroka kaedah tontonan python funcools.partial Object in Funcools.Partial Menggunakan Python ...

Pembangunan Aplikasi Desktop Cross-Platform Python: Perpustakaan GUI mana yang terbaik untuk anda? Pembangunan Aplikasi Desktop Cross-Platform Python: Perpustakaan GUI mana yang terbaik untuk anda? Apr 01, 2025 pm 05:24 PM

Pilihan Perpustakaan Pembangunan Aplikasi Desktop Python Python Banyak pemaju Python ingin membangunkan aplikasi desktop yang boleh dijalankan pada kedua-dua sistem Windows dan Linux ...

Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Apr 01, 2025 pm 11:15 PM

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

See all articles