Senarai pemahaman dalam Python adalah cara yang ringkas dan kuat untuk membuat senarai berdasarkan senarai sedia ada atau ayat lain. Ia membolehkan anda menggabungkan gelung dan pernyataan bersyarat ke dalam satu baris kod yang boleh dibaca. Sintaks asas untuk pemahaman senarai adalah:
<code class="python">new_list = [expression for item in iterable if condition]</code>
Inilah cara ia berfungsi:
item
di iterable
. Ia boleh menjadi operasi yang mudah, seperti mendarabkan item dengan 2, atau operasi yang lebih kompleks.iterable
. Sekiranya keadaan itu benar untuk item, expression
itu digunakan untuknya.Berikut adalah contoh pemahaman senarai:
<code class="python"># Traditional way numbers = [1, 2, 3, 4, 5] squared_numbers = [] for num in numbers: squared_numbers.append(num ** 2) # Using list comprehension squared_numbers = [num ** 2 for num in numbers]</code>
Kedua -dua kaedah ini mencapai hasil yang sama, tetapi pemahaman senarai lebih ringkas.
Pemahaman senarai dapat meningkatkan kecekapan kod python anda dalam beberapa cara:
Inilah contoh membandingkan prestasi:
<code class="python">import timeit # List comprehension list_comp_time = timeit.timeit('[x**2 for x in range(1000)]', number=10000) print(f"List comprehension time: {list_comp_time}") # Traditional for loop for_loop_time = timeit.timeit(''' numbers = [] for x in range(1000): numbers.append(x**2) ''', number=10000) print(f"For loop time: {for_loop_time}")</code>
Menjalankan kod ini sering menunjukkan bahawa pemahaman senarai lebih cepat.
Senarai pemantauan adalah serba boleh dan boleh digunakan dalam banyak senario. Beberapa kes penggunaan biasa termasuk:
Mengubah Senarai : Anda boleh menggunakan senarai pemantauan untuk mengubah elemen senarai. Sebagai contoh, menukar senarai rentetan ke huruf besar:
<code class="python">original_list = ["apple", "banana", "cherry"] upper_list = [fruit.upper() for fruit in original_list]</code>
Senarai Penapisan : Anda boleh menapis elemen berdasarkan keadaan. Sebagai contoh, memilih nombor walaupun dari senarai:
<code class="python">numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = [num for num in numbers if num % 2 == 0]</code>
Membuat Senarai dari Iterables Lain : Senarai Komprehensif boleh membuat senarai dari ayat lain seperti tuple atau set:
<code class="python">tuple_data = (1, 2, 3, 4, 5) new_list = [x * 2 for x in tuple_data]</code>
Senarai SENARAI SENARAI : Anda boleh menggunakan pemantauan senarai bersarang untuk meratakan senarai senarai atau melakukan operasi yang lebih kompleks:
<code class="python">matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flat_list = [num for row in matrix for num in row]</code>
Logik Bersyarat : Anda boleh memasukkan logik bersyarat untuk menggunakan transformasi yang berbeza berdasarkan keadaan:
<code class="python">numbers = [1, -2, 3, -4, 5] absolute_values = [abs(num) if num </code>
Walaupun istilah "pemahaman senarai" secara khusus merujuk kepada membuat senarai, konsep ini boleh diperluaskan ke struktur data lain di Python. Berikut adalah cara anda boleh menggunakan sintaks serupa dengan struktur data lain:
Tetapkan Komprehensif : Tetapkan Kompresi Gunakan pendakap keriting {}
bukan kurungan persegi []
dan kembalikan satu set:
<code class="python">numbers = [1, 2, 3, 4, 5, 5, 6] unique_squares = {x**2 for x in numbers}</code>
KESELURUHAN KAMI : KESELAMATAN KAMI Buat kamus. Mereka menggunakan pendakap keriting {}
dan kolon :
untuk memisahkan kunci dan nilai:
<code class="python">original_dict = {'a': 1, 'b': 2, 'c': 3} doubled_dict = {key: value * 2 for key, value in original_dict.items()}</code>
Ekspresi Generator : Ekspresi penjana adalah serupa dengan pemantauan senarai tetapi menggunakan tanda kurung ()
bukan kurungan persegi []
. Mereka menjana nilai-nilai on-the-fly dan tidak menyimpannya dalam ingatan:
<code class="python">numbers = [1, 2, 3, 4, 5] squares_gen = (x**2 for x in numbers) for square in squares_gen: print(square)</code>
Walaupun pemantauan senarai khusus untuk senarai, pembinaan yang berkaitan ini membolehkan anda menggunakan sintaks yang sama untuk struktur data lain, meningkatkan kebolehbacaan dan kecekapan kod dengan cara yang sama.
Atas ialah kandungan terperinci Apakah pemahaman senarai dalam python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!