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

Pengaturcaraan Python: Cara Cemerlang untuk Mengelakkan Gelung!

PHPz
PHPzke hadapan
2023-04-26 15:10:081759semak imbas

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

fungsi lambda

lambda x: x*2

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)

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]

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)

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]

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

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam