def digunakan untuk mentakrifkan fungsi biasa, manakala kata kunci lambda digunakan untuk mentakrifkan fungsi tanpa nama. Walau bagaimanapun, ia terhad kepada ungkapan satu baris. Mereka, seperti fungsi biasa, boleh menerima berbilang hujah. Syntax lambdaarguments:expression Fungsi ini menerima sebarang bilangan input, tetapi hanya menilai dan mengembalikan ungkapan. kambing"/> def digunakan untuk mentakrifkan fungsi biasa, manakala kata kunci lambda digunakan untuk mentakrifkan fungsi tanpa nama. Walau bagaimanapun, ia terhad kepada ungkapan satu baris. Mereka, seperti fungsi biasa, boleh menerima berbilang hujah. Syntax lambdaarguments:expression Fungsi ini menerima sebarang bilangan input, tetapi hanya menilai dan mengembalikan ungkapan. kambing">

Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah fungsi lambda dalam Python dan mengapa kita memerlukannya?

Apakah fungsi lambda dalam Python dan mengapa kita memerlukannya?

WBOY
WBOYke hadapan
2023-08-25 14:41:131269semak imbas

Apakah fungsi lambda dalam Python dan mengapa kita memerlukannya?

Dalam artikel ini, kita akan belajar tentang fungsi lambda dalam Python dan sebab kita memerlukannya, dan melihat beberapa contoh praktikal fungsi lambda.

Apakah fungsi lambda dalam Python?

Fungsi Lambda, sering dipanggil "fungsi tanpa nama", sama seperti fungsi Python biasa, kecuali ia boleh ditakrifkan tanpa nama. Kata kunci >def digunakan untuk mentakrifkan fungsi biasa, manakala kata kunci lambda digunakan untuk mentakrifkan fungsi tanpa nama. Walau bagaimanapun, ia terhad kepada ungkapan satu baris. Mereka, seperti fungsi biasa, boleh menerima berbilang hujah.

Tatabahasa

lambda arguments: expression
  • Fungsi ini menerima sebarang bilangan input tetapi hanya menilai dan mengembalikan ungkapan.

  • Fungsi Lambda boleh digunakan di mana-mana objek fungsi diperlukan.

  • Anda mesti ingat bahawa fungsi lambda terhad secara sintaksis kepada satu ungkapan.

  • Selain jenis ekspresi lain dalam fungsi, ia mempunyai pelbagai kegunaan dalam kawasan pengaturcaraan tertentu.

Mengapa kita memerlukan fungsi Lambda?

  • Fungsi lambda memerlukan lebih sedikit baris kod daripada fungsi Python biasa yang ditulis menggunakan kata kunci def. Walau bagaimanapun, ini tidak sepenuhnya benar, kerana fungsi yang ditakrifkan menggunakan def boleh ditakrifkan dalam satu baris. Walau bagaimanapun, fungsi def biasanya ditakrifkan pada lebih daripada satu baris.

  • Ia biasanya digunakan apabila fungsi yang lebih pendek (sementara) diperlukan, biasanya dalam fungsi lain (seperti penapis, peta atau pengurangan).

  • Anda boleh mentakrifkan fungsi dan memanggilnya serta-merta pada penghujung definisi menggunakan fungsi lambda. Ini tidak boleh dilakukan dengan fungsi def.

Contoh mudah fungsi Python Lambda

Contoh

# input string 
inputString = 'TUTORIALSpoint'
 
# converting the given input string to lowercase and reversing it
# with the lambda function
reverse_lower = lambda inputString: inputString.lower()[::-1]

print(reverse_lower(inputString))

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

tniopslairotut

Gunakan fungsi Lambda dalam semakan bersyarat

Contoh

# Formatting number to 2 decimal places using lambda function
formatNum = lambda n: f"{n:e}" if isinstance(n, int) else f"{n:,.2f}"
 
print("Int formatting:", formatNum(1000))
print("float formatting:", formatNum(5555.4895412))

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

Int formatting: 1.000000e+03
float formatting: 5,555.49

Apakah perbezaan antara fungsi Lambda dan fungsi yang ditakrifkan?

Contoh

# creating a function that returns the square root of 
# the number passed to it
def square(x):
	return x*x


# using lambda function that returns the square root of 
# the number passed 
lambda_square = lambda x: x*x


# printing the square root of the number by passing the
# random number to the above-defined square function with the def keyword
print("Square of the number using the function with 'def' keyword:", square(4))

# printing the square root of the number by passing the
# random number to the above lambda_square function with lambda keyword
print("Square of the number using the function with 'lambda' keyword:", lambda_square(4))

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

Square of the number using the function with 'def' keyword: 16
Square of the number using the function with 'lambda' keyword: 16

Seperti yang ditunjukkan dalam contoh sebelumnya, fungsi square() dan lambda_square () berfungsi sama dan seperti yang dijangkakan. Mari kita lihat lebih dekat contoh ini dan ketahui perbezaan antara mereka -

Gunakan fungsi lambda Tiada fungsi lambda
Menyokong pernyataan satu baris yang mengembalikan nilai tertentu. Membenarkan sebarang bilangan baris dalam blok fungsi.
Sesuai untuk operasi kecil atau manipulasi data. Ini berguna dalam situasi di mana berbilang baris kod diperlukan.
Kurangkan kebolehbacaan kod Kami boleh meningkatkan kebolehbacaan dengan menggunakan ulasan dan penjelasan berfungsi.

Penggunaan praktikal fungsi Python lambda

Contoh

Gunakan fungsi Lambda dengan pemahaman senarai

is_odd_list = [lambda arg=y: arg * 5 for y in range(1, 10)]
 
# looping on each lambda function and calling the function
# for getting the multiplied value
for i in is_odd_list:
	print(i())

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

5
10
15
20
25
30
35
40
45

Pada setiap lelaran pemahaman senarai, fungsi lambda baharu dicipta dengan parameter lalai y (dengan y ialah item semasa dalam lelaran). Kemudian, dalam gelung for, kami menggunakan i() untuk memanggil objek fungsi yang sama dengan parameter lalai dan mendapatkan nilai yang diperlukan. Oleh itu, is_odd_list memegang senarai objek fungsi lambda.

Contoh

Gunakan fungsi Lambda dengan syarat if-else

# using lambda function to find the maximum number among both the numbers
find_maximum = lambda x, y : x if(x > y) else y
 
print(find_maximum(6, 3))

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

6

Contoh

Gunakan fungsi Lambda dengan berbilang kenyataan

inputList = [[5,2,8],[2, 9, 12],[10, 4, 2, 7]]

# sorting the given each sublist using lambda function
sorted_list = lambda k: (sorted(e) for e in k)

# getting the second-largest element 
second_largest = lambda k, p : [x[len(x)-2] for x in p(k)]
output = second_largest(inputList, sorted_list)

# printing the second largest element
print(output)

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

[5, 9, 7]

Fungsi python lambda dengan penapis()

Contoh

inputList = [3, 5, 10, 7, 24, 6, 1, 12, 8, 4]

# getting the even numbers from the input list 
# using lambda and filter functions
evenList = list(filter(lambda n: (n % 2 == 0), inputList))
# priting the even numbers from the input list
print("Even numbers from the input list:", evenList)

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

Even numbers from the input list: [10, 24, 6, 12, 8, 4]

Fungsi python lambda dengan map()

Fungsi

Python's map() menerima fungsi dan senarai sebagai parameter. Memanggil fungsi dengan fungsi lambda dan senarai, ia mengembalikan senarai baharu yang mengandungi semua item yang diubah lambda yang dipulangkan oleh fungsi untuk setiap item.

Contoh

Tukar semua elemen senarai kepada huruf kecil menggunakan fungsi lambda dan map()

# input list
inputList = ['HELLO', 'TUTORIALSpoint', 'PyTHoN', 'codeS']

# converting all the input list elements to lowercase using lower()
# with the lambda() and map() functions and returning the result list
lowercaseList = list(map(lambda animal: animal.lower(), inputList))

# printing the resultant list
print("Converting all the input list elements to lowercase:\n", lowercaseList)

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

Converting all the input list elements to lowercase:
 ['hello', 'tutorialspoint', 'python', 'codes']

Kesimpulan

Dalam tutorial ini, kami belajar tentang fungsi lambda dalam Python secara mendalam dengan banyak contoh. Kami juga mempelajari perbezaan antara fungsi lambda dan fungsi def.

Atas ialah kandungan terperinci Apakah fungsi lambda dalam Python dan mengapa kita memerlukannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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