Pemahaman senarai ialah kaedah yang berkuasa dan cekap untuk mencipta senarai dalam Python.
Mereka menawarkan cara ringkas dan boleh dibaca untuk menjana senarai berdasarkan iterables sedia ada.
Dalam artikel, saya akan meneroka nuansa pemahaman senarai, faedahnya berbanding gelung tradisional dan pelbagai aplikasi praktikal.
Pemahaman senarai ialah cara padat dari segi sintaksis untuk membuat senarai dengan menggabungkan gelung dan logik bersyarat ke dalam satu baris kod.
Ini menghasilkan cara yang lebih mudah dibaca dan ekspresif untuk menjana senarai, menjadikannya lebih mudah untuk memahami maksud kod sepintas lalu.
Struktur asas pemahaman senarai adalah seperti berikut:
[expression for item in iterable if condition]
Mari kita pecahkan komponen struktur ini:
Kefahaman Senarai Asas:
numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) # Output: [1, 4, 9, 16, 25]
Contoh ini menggunakan pemahaman senarai untuk membuat senarai petak baharu daripada senarai nombor sedia ada.
Senaraikan Pemahaman dengan Syarat:
numbers = [1, 2, 3, 4, 5] even_squares = [x**2 for x in numbers if x % 2 == 0] print(even_squares) # Output: [4, 16]
Contoh ini menapis nombor untuk memasukkan hanya nombor genap, yang kemudiannya diduakan, menunjukkan penggunaan keadaan if dalam pemahaman senarai.
Kefahaman senarai menawarkan beberapa kelebihan berbanding gelung tradisional:
Kefahaman senarai boleh digunakan dalam pelbagai cara untuk memanipulasi dan memproses data.
Berikut ialah beberapa kes penggunaan biasa:
Senarai Penapisan:
words = ["apple", "banana", "cherry", "date"] short_words = [word for word in words if len(word) <= 5] print(short_words) # Output: ['apple', 'date']
Contoh ini menapis senarai perkataan untuk memasukkan hanya perkataan yang mempunyai 5 aksara atau kurang.
Senarai Mengubah:
temperatures_celsius = [0, 20, 30, 40] temperatures_fahrenheit = [(temp * 9/5) + 32 for temp in temperatures_celsius] print(temperatures_fahrenheit) # Output: [32.0, 68.0, 86.0, 104.0]
Contoh ini menukar senarai suhu daripada Celsius kepada Fahrenheit.
Pemahaman Senarai Bersarang:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flattened = [num for row in matrix for num in row] print(flattened) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Contoh ini meratakan senarai 2D (matriks) menjadi senarai 1D menggunakan pemahaman senarai bersarang.
Membuat Senarai Tuple:
pairs = [(x, y) for x in range(3) for y in range(3)] print(pairs) # Output: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
Contoh ini menjana senarai semua kemungkinan pasangan (tuple) nombor daripada dua julat.
Mengalih Keluar Pendua:
list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_list = list(set([x for x in list_with_duplicates])) print(unique_list) # Output: [1, 2, 3, 4, 5]
Contoh ini mengalih keluar pendua daripada senarai dengan menukarnya kepada set dan kembali kepada senarai.
Mari kita terokai beberapa topik yang lebih lanjut mengenai variasi pemahaman senarai.
Ungkapan Penjana
Ungkapan penjana adalah serupa dengan pemahaman senarai tetapi menjana lelaran dan bukannya senarai.
Ini boleh menjadi lebih cekap memori apabila bekerja dengan set data yang besar, kerana item dijana dengan cepat dan bukannya disimpan dalam ingatan sekaligus.
numbers = [1, 2, 3, 4, 5] squares_generator = (x**2 for x in numbers) for square in squares_generator: print(square) # Output # 1 # 4 # 9 # 16 # 25
Kamus dan Set Pemahaman
Python juga menyokong kamus dan set kefahaman, yang membolehkan anda mencipta kamus dan set dengan cara yang ringkas, sama seperti senarai kefahaman.
# Dictionary comprehension numbers = [1, 2, 3, 4, 5] squares_dict = {x: x**2 for x in numbers} print(squares_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25} # Set comprehension list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_set = {x for x in list_with_duplicates} print(unique_set) # Output: {1, 2, 3, 4, 5}
Pemahaman senarai ialah alat yang berkuasa dan serba boleh dalam Python yang membolehkan anda membuat senarai dengan cara yang ringkas dan boleh dibaca.
Mereka boleh memudahkan kod anda, meningkatkan prestasi dan memudahkan untuk memanipulasi dan memproses data.
Dengan menguasai pemahaman senarai dan ciri lanjutannya, anda boleh menulis kod Python yang lebih cekap dan lebih bersih.
Atas ialah kandungan terperinci Memahami Pemahaman Senarai dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!