⊗pyPmFnLa 16 of 129 menu

Ламбда функция в Python

Нека имаме функция func, която приема като параметри списък и обратна функция (callback). Функцията ще създаде нов списък от елементите на оригиналния списък. При това към всеки от елементите ще се приложи обратната функция:

def func(lst, callback): res = [] for el in lst: res.append(callback(el)) return res

Сега нека създадем функция square, която ще повдига подаденото й число на квадрат:

def square(num): return num ** 2

Нека подадем като параметри на func числов списък и функцията square като обратна функция:

print( func([1, 2, 3], square) )

В конзолата ще се изведе нов списък, състоящ се от квадратите на числата:

[1, 4, 9]

Обаче този код може значително да се съкрати, като се използва ламбда функция - анонимна функция, която се извиква с помощта на ключовата дума lambda и се записва на един ред. Затова в ламбда функция може да се пренапише само функции, чийто код заема един ред.

Синтаксисът на ламбда функцията изглежда така:

lambda параметър на функцията: операция с параметъра на функцията

Нека пренапишем функцията square с помощта на ламбда функция и я подадем като параметър на func:

print( func([1, 2, 3], lambda num: num ** 2) )

Ламбда функцията може да се запише в променлива:

square = lambda num: num ** 2 print( func([1, 2, 3], square) )

Пренапишете следния код с ламбда функция:

def func(num, clb): return clb(num) def clb(num): return num + 1 print( func(2, clb) )

Пренапишете следния код с ламбда функция:

def func(num, clb1, clb2): return (clb1(num), clb2(num)) def clb1(num): return num + 1 def clb2(num): return num - 1 print( func(2, clb1, clb2) )

Пренапишете следния код с ламбда функция:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне