Pemahaman senarai ialah pintasan untuk membina senarai dalam Python Anda boleh membuat senarai menggunakan kod ringkas.
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
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)
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)
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)
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 kodBagi 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 kamusSejak 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:['ppppppp', 'yyyyyyy', 'ttttttt', 'hhhhhhh', 'ooooooo', 'nnnnnnn'] [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]]
# 因为key是唯一的,所以最后value都是1 dict_a = {key: value for key in 'python' for value in range(2)} print(dict_a) # 可以根据键来构造值 dict_b = {key: key * key for key in range(6)} print(dict_b) # 遍历一个有键值关系的可迭代对象 list_phone = [('HUAWEI', '华为'), ('MI', '小米'), ('OPPO', 'OPPO'), ('VIVO', 'VIVO')] dict_c = {key: value for key, value in list_phone} print(dict_c)
{'p': 1, 'y': 1, 't': 1, 'h': 1, 'o': 1, 'n': 1} {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} {'HUAWEI': '华为', 'MI': '小米', 'OPPO': 'OPPO', 'VIVO': 'VIVO'}
# 遍历一个可迭代对象生成集合 set_a = {value for value in '有人云淡风轻,有人负重前行'} print(set_a)
Atas ialah kandungan terperinci Bagaimana untuk menggunakan pemahaman senarai Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!