Rumah > pembangunan bahagian belakang > Tutorial Python > Pengaturcaraan Python: Cara Cemerlang untuk Mengelakkan Gelung!

Pengaturcaraan Python: Cara Cemerlang untuk Mengelakkan Gelung!

PHPz
Lepaskan: 2023-04-26 15:10:08
ke hadapan
1806 orang telah melayarinya

Kami tahu bahawa menggunakan gelung dalam Python adalah sangat perlahan, apakah yang perlu anda lakukan jika anda menghadapi situasi yang sama?

不要在 Python 中使用循环,这些方法其实更棒!

Dalam artikel ini, saya akan berkongsi dengan anda kaedah dan kes yang boleh digunakan untuk menggantikan gelung Python:

  • Peta
  • Penapis
  • Kurangkan

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
Salin selepas log masuk

fungsi lambda

lambda x: x*2
Salin selepas log masuk

Nota: Lebih baik menggunakan fungsi lambda berbanding fungsi biasa.

1. Peta

Menggunakan fungsi peta, kita boleh menggunakan fungsi pada setiap nilai objek boleh lelar (senarai, tuple, dll.).

map(function, iterable)
Salin selepas log masuk

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
Salin selepas log masuk

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]
Salin selepas log masuk

2. Penapis

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)
Salin selepas log masuk

Kami akan menggunakan fungsi penapis untuk menapis nilai kurang daripada 10.

def less_than_10(x):
if x < 10:
return x
Salin selepas log masuk

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]
Salin selepas log masuk

3. Reduce

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. 不要在 Python 中使用循环,这些方法其实更棒!Mari buat fungsi penambahan() yang menambah dua nombor input.

def addition(x,y):
return x + y
Salin selepas log masuk

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
Salin selepas log masuk


Atas ialah kandungan terperinci Pengaturcaraan Python: Cara Cemerlang untuk Mengelakkan Gelung!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan