Про лямбда-функції
Лямбда-функції в python - це неназвані та анонімні функції, які можна використовувати для створення виразів, що повертають якесь значення на основі обчислень, реалізованих у самому виразі. Логіка в цих лямбда-функціях може бути записана стисло, як правило, те, що легко поміщається в один рядок. Іноді їх важко читати, особливо якщо люди погано знаються на функціях лямбда. Однак вони мають перевагу утримувати речі разом у блоках коду, і вони допомагають краще зрозуміти контекст.
Синтаксис лямбда-функцій
Синтаксис функції лямбда в Python виглядає так:
помножити = лямбда х, у: х * уПерша частина лямбда-виразу, безпосередньо перед символом двокрапки (:), приймає параметри як аргументи. Друга частина, після символу двокрапки, повинна мати повернене значення. Це повертане значення також може бути виразом з логікою. Насправді, функції Лямбда використовуються майже весь час для реалізації певної логіки на поданих аргументах, а потім повертають кінцевий результат.
Щоб перевірити функцію Лямбда, зазначену вище, ви можете використати наступне твердження:
друк (множення (3, 4))Ви повинні отримати наступний результат:
12В іншому випадку та сама лямбда-функція була б записана таким чином:
def multiply (x, y):повернення x * y
друк (множення (3, 4))
Обидва зразки коду дадуть однакові результати. Ще кілька прикладів функцій лямбда пояснюються нижче.
Передайте лямбда-функції як аргументи
Ви можете використовувати лямбда-функції для обчислення та надання поверненого значення в якості аргументів для інших функцій. Метод сортування в Python приймає аргумент “ключ”, де ви можете вказати функцію, що викликається, яка приймає один аргумент для цілей сортування. Замість того, щоб спочатку визначити окрему функцію, яка повертає ключ, а потім подати посилання на функцію до аргументу, ви можете просто використовувати функцію Лямбда.
фрукти = [(2, 'яблука'), (4, 'апельсини'), (3, 'банани')]фрукти.сортування (ключ = лямбда-елемент: елемент [0])
друк (фрукти)
Наведений вище код дасть такий результат:
[(2, 'яблука'), (3, 'банани'), (4, 'апельсини')]Ви можете використовувати лямбда в будь-якому такому методі, який приймає функцію, що викликається, як аргумент (наприклад, метод фільтра).
Використовуйте лямбда-функції у розумінні списку
Ви можете використовувати лямбду в розумінні списку, і список буде належним чином створений із значень, що повертаються виразом Лямбда.
get_square = лямбда a: a * aквадрати = [get_square (x) для x в діапазоні (5)]
друк (квадрати)
Це дасть такий результат:
[0, 1, 4, 9, 16]Наведений вище зразок коду також можна записати наступним чином, де “x” подається в функцію лямбда як аргумент:
квадрати = [(лямбда x: x * x) (x) для x в діапазоні (5)]друк (квадрати)
Цей приклад просто ілюструє використання лямбда-функцій у розумінні списку. В іншому випадку ви можете легко обчислити квадрати, використовуючи мінімальний вираз розуміння списку:
друк ([x * x для x в діапазоні (5)])Використовуйте лямбда-функції у словниках Python
Наведений нижче зразок коду ілюструє функції Лямбда, що використовуються в парах ключ-значення у словнику Python. Після визначення, ви можете викликати ці функції в будь-який час.
обчислити = 'сума': лямбда a, b: a + b, 'різниця': лямбда a, b: a - bдрук (обчислити ['суму'] (4, 5))
друк (обчислити ['різницю'] (4, 5))
Ви повинні отримати наступний результат після запуску вищевказаного коду:
9-1
Висновок
Лямбда-функції забезпечують чудовий спосіб писати скорочені вирази та підтримувати порядок і організованість без зайвого створення безлічі іменованих функцій. Однак надмірне використання лямбда-функцій може ускладнити читання коду, особливо коли код переглядає не одна людина. Краще мати більше читабельного коду (навіть якщо він багатослівний), ніж мати щось, що може бути трохи важко зрозуміти під час повторних відвідувань.