Rumah > Artikel > pembangunan bahagian belakang > Pengaturcaraan Python: Cara Cemerlang untuk Mengelakkan Gelung!
Kami tahu bahawa menggunakan gelung dalam Python adalah sangat perlahan, apakah yang perlu anda lakukan jika anda menghadapi situasi yang sama?
Dalam artikel ini, saya akan berkongsi dengan anda kaedah dan kes yang boleh digunakan untuk menggantikan gelung Python:
Sebelum kita mula menggunakan fungsi di atas, jika anda tidak biasa dengan fungsi lambda, mari kita lihat sebentar.
Fungsi Lambda adalah alternatif kepada fungsi biasa. Ia boleh ditakrifkan dalam satu baris kod dan oleh itu mengambil sedikit masa dan ruang dalam kod kami. Sebagai contoh, dalam kod di bawah, kita boleh melihat fungsi lambda dalam tindakan.
def multiply_by_2(x): x*2
fungsi lambda
lambda x: x*2
Nota: Lebih baik menggunakan fungsi lambda berbanding fungsi biasa.
Menggunakan fungsi peta, kita boleh menggunakan fungsi pada setiap nilai objek boleh lelar (senarai, tuple, dll.).
map(function, iterable)
Andaikan kita ingin mendapatkan nombor segi empat sama dalam senarai (objek boleh lelar). Mula-mula kita akan mencipta fungsi segi empat sama() untuk mencari kuasa dua nombor.
def square(x): return x*x
Kami kemudiannya akan menggunakan fungsi peta untuk menggunakan fungsi segi empat sama() pada senarai input nombor.
input_list = [2, 3, 4, 5, 6] # Without lambda result = map(square, input_list) # Using lambda function result = map(lambda x: x*x, input_list) # converting the numbers into a list list(result) # Output: [4, 9, 16, 25, 36]
Secara intuitif, fungsi penapis digunakan untuk menapis nilai daripada objek boleh lelar (senarai, tupel, set, dll.). Keadaan penapis ditetapkan dalam fungsi yang diluluskan sebagai parameter kepada fungsi penapis.
filter(function, iterable)
Kami akan menggunakan fungsi penapis untuk menapis nilai kurang daripada 10.
def less_than_10(x): if x < 10: return x
Kami kemudiannya akan menggunakan fungsi Penapis untuk menggunakan fungsi less_than_10() pada senarai nilai.
input_list = [2, 3, 4, 5, 10, 12, 14] # Without lambda list(filter(less_than_10, input_list)) # using lambda function list(filter(lambda x: x < 10, input_list)) # Output: [2, 3, 4, 5]
Fungsi Reduce berbeza sedikit daripada fungsi peta dan penapis. Ia digunakan secara berulang pada semua nilai yang boleh diulang dan hanya mengembalikan satu nilai.
Dalam contoh di bawah, senarai nombor dikurangkan dengan menggunakan fungsi tambah. Output akhir ialah jumlah semua nombor dalam senarai, iaitu 15. Mari buat fungsi penambahan() yang menambah dua nombor input.
def addition(x,y): return x + y
Seterusnya, untuk mendapatkan jumlah semua nombor dalam senarai, kami akan menggunakan fungsi penambahan ini sebagai hujah kepada fungsi pengurangan.
from functools import reduce input_list = [1, 2, 3, 4, 5] # Without Lambda function reduce(addition, input_list)) # With Lambda function reduce(lambda x,y: x+y, input_list)) # Output: 15
Atas ialah kandungan terperinci Pengaturcaraan Python: Cara Cemerlang untuk Mengelakkan Gelung!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!