В тази статия ще се опитаме да научим за Python Lambda.
Определение
Ламбда е функция, дефинирана без име. Това може да отнеме множество аргументи, но е разрешен само един израз, който се оценява и връща. Когато се изискват функционални обекти, можем да използваме ламбда функцията.
Синтаксис:
ламбда аргументи: израз
Пример 1: Функцията по-долу се използва за изчисляване на куба на число.
def cube (a):върнете a * a * a
печат (куб (3))
Горната функция може да бъде написана с помощта на ламбда, както е показано по-долу:
p = ламбда x: x * x * xпечат (p (3))
Пример 2: Функцията по-долу се използва за изчисляване на сумата от две числа.
def sum_2 (x, y):връщане x + y
печат (сума_2 (10,20))
Горната функция може да бъде написана с помощта на ламбда, както е показано по-долу:
p = ламбда x, y: x + yпечат (p (10,20))
Пример 3: Примерът по-долу за ламбда приема множество аргументи.
p = ламбда x, y, z: x + y + zпечат (p (10, 5, 3))
Пример 4: Тази функция умножава числото по 2 и може да бъде записана с помощта на функцията Lambda, както е показано по-долу:
def func (n):върнете ламбда x: x * n
multiply_by_2 = func (2)
печат (multiply_by_2 (11))
печат (multiply_by_2 (15))
Пример 5: Функцията приема функцията като аргумент и връща резултата.
аргумент_на функция = ламбда p, f: p + f (p)печат (аргумент_на_функция (5, ламбда p: p * p))
печат (аргумент_на_функция (10, ламбда x: x - 3))
печат (аргумент_на_функция (10, ламбда x: x + 5))
печат (аргумент_на_функция (10, ламбда x: x / 5))
Пример 6: В примера по-долу ламбда се използва за сортиране на стойностите.
# (име, фамилия, възраст)данни = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
данни.сортиране (ключ = ламбда x: x [0]) # сортиране въз основа на име
печат (данни)
данни = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
данни.сортиране (ключ = ламбда x: x [1]) # сортиране въз основа на фамилното име
печат (данни)
данни = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
данни.сортиране (ключ = ламбда x: x [2]) # сортиране въз основа на възрастта
печат (данни)
Сега влезте в интерпретатора на python3.
Ламбда функцията се използва в много вградени методи. Следват някои примери:
1. Карта
Тази функция картографира всеки елемент последователно с помощта на ламбда функцията.
Синтаксис:
карта (функция, sq)
Пример:
номера = [1,2,3,4,5,6]
Тук ще умножим всеки елемент в списъка по 2.
mul_2 = карта (ламбда x: x * 2, номера)
print (list (mul_2)) # Връща обект на картата и го въвежда като списък.
В горната функция всеки елемент от списъка се предава на ламбда функцията и ламбда функцията ще го умножи по 2.
номера = [1,2,3,4,5,6]mul_2 = карта (ламбда x: x * 2, номера)
печат (списък (mul_2))
2. Филтър
Тази функция филтрира всички елементи от списък, за които ламбда функцията връща True.
Синтаксис:
филтър (функция, sq)
Пример:
номера = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = филтър (ламбда x: x% 2, номера)
print (list (odd_nums)) # Връща обект на картата и го въвежда като списък.
odd_nums = филтър (ламбда x: x% 2, номера)
печат (списък (нечетни_номери))
3. Намалете
Тази функция връща единична стойност чрез прилагане на функция func () към sq.
Синтаксис:
намаляване (func, sq)
Пример:
номера = [0,1,2,3,4,5,6,7,8,9,10]
стойност = намаляване (ламбда x, y: x + y, номера)
печат (стойност)
В горния списък ще вземе първите 2 елемента и ще извърши добавяне. Резултатът от добавяне ще бъде добавен към третия елемент и т.н. Накрая ще върне една стойност.
Забележка: Този метод не е наличен във версията на python3 +.
номера = [0,1,2,3,4,5,6,7,8,9,10]стойност = намаляване (ламбда x, y: x + y, номера)
печат (стойност)
Заключение
От тази статия научихме много аспекти на ламбда функцията. В зависимост от това от какво се нуждае програмата, можем да я използваме и да направим по-добро кодиране на python. Това се използва най-често за предаване на аргументи на друга функция (например, видяхме по-горе карти, функции, филтриране и намаляване).