Python

Як використовувати лямбда-функції в Python

Як використовувати лямбда-функції в Python
У цій статті буде пояснено, як використовувати функції лямбда в Python. Лямбда-функції можна використовувати для написання стислих однорядкових рядків, реалізації логіки та швидкого отримання повернутих значень, які можна подавати в інші вирази.

Про лямбда-функції

Лямбда-функції в 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

Висновок

Лямбда-функції забезпечують чудовий спосіб писати скорочені вирази та підтримувати порядок і організованість без зайвого створення безлічі іменованих функцій. Однак надмірне використання лямбда-функцій може ускладнити читання коду, особливо коли код переглядає не одна людина. Краще мати більше читабельного коду (навіть якщо він багатослівний), ніж мати щось, що може бути трохи важко зрозуміти під час повторних відвідувань.

Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Як зафіксувати та транслювати ігровий сеанс на Linux
Раніше грати в ігри вважалося лише хобі, але з часом ігрова індустрія спостерігала величезний ріст з точки зору технологій та кількості гравців. Аудит...
Найкращі ігри для гри з відстеженням рук
Нещодавно Oculus Quest представив чудову ідею відстеження рук без контролерів. Завдяки постійно зростаючій кількості ігор та заходів, які виконують пі...