Анонимная функция lambda
Мы уже научились создавать обычные функции, но использование def не единственный доступный способ. В Python есть специальный синтаксис который позволяет создавать так называемые анонимные или лямбда функции, в литературе их еще записывают как λ-функции (буква λ читается как лямбда). Лямбда-исчисления — это интересная область теоретической информатики которая породила много важных концепций. Многие из которых получили широкое распространение и стали частью или даже основой для новых языков программирования или библиотек.
Синтаксис анонимной функции выглядит следующим образом:
lambda <аргумент1>[, <аргумент 2>, ...]: <выражение>
Аргументы записываются просто через запятую, без скобок. Выражение состоит из одной строки и результат его выполнения является результатом функции.
Рассмотрим пример простейшей функции. В математике ее называют тождественное отображение, то есть функция которая преобразовывает полученный аргумент в самого себя:
lambda x: x
Эквивалентный код записанный через def:
def func(x):
return x
Задание 1: необычная сотировка
В списке items хранятся целые числа. Запишите в переменную srt отсортированный список items. В сортировке отрицательные числа должны учитываться, как положительные, уменьшенные вдвое.
Пример:
[10, -3, 0, -12, 4] # [0, -3, 4, -12, 10]
Подсказка: используйте тернарный оператор: <> if <> else <>
Задание 2: Перемножение элементов
В списках items и items2 хранятся целые числа. Списки имеют одинаковую длину. Запишите в переменную mul объект map, в который записан результат поэлементного умножения этих списков.
Пример:
[2, 3]
[100, 10]
# 200 30
Задание3: Сумма доходов.
Используя lambda-функцию напишите функцию, которая будет принимать на вход список из сумм входящих/исходящих платежей и возвращать общую сумму входящих платежей.
- Реализуйте функцию с сигнатурой sum_income(list_payment), где list_payment список из положительных и отрицательных чисел.
- Функция должна вернуть сумму положительных чисел.
- Решение должно быть с применением lambda-функцию.
- Количество строк в коде не должно превышать 2х строк.