tak.lol
28 ноябрь 2024
9
0
Не нравится 0 Нравится

Lambda

Давай поговорим о lambda-функциях в Python. Эти маленькие, но мощные анонимные функции способны значительно упростить твой код и сделать его более читаемым. Если ты еще не знаком с ними, то готовься — это будет весело!



Что такое lambda?


Lambda-функции — это способ создания небольших анонимных функций прямо на месте, без необходимости определять их с помощью def. Это как если бы ты заказал бургер без всякой лишней информации: просто «дайте мне бургер», и всё!



Синтаксис


Синтаксис lambda очень прост:



lambda аргументы: выражение

Функция может принимать любое количество аргументов, но выражение должно возвращать одно значение. Например:



add = lambda x, y: x + y
print(add(3, 5))  # Вывод: 8


Где использовать lambda?


Lambda-функции отлично подходят для случаев, когда нужна простая функция на короткое время. Например, когда ты используешь функции высшего порядка, такие как map, filter и reduce.



Пример с map()


Предположим, у нас есть список чисел, и мы хотим удвоить каждое из них. Вместо того чтобы писать полноценную функцию, мы можем использовать lambda:



numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # Вывод: [2, 4, 6, 8, 10]


Пример с filter()


Теперь давай отфильтруем только четные числа из списка. Опять же, мы можем использовать lambda:



even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # Вывод: [2, 4]


Пример с reduce()


А что если мы хотим найти произведение всех чисел в списке? Для этого нам понадобится reduce. Не забудь импортировать его из модуля functools:



from functools import reduce

product = reduce(lambda x, y: x * y, numbers)
print(product)  # Вывод: 120


Lambda и сортировка


Еще один интересный способ использования lambda — это сортировка. Допустим, у нас есть список кортежей, и мы хотим отсортировать их по второму элементу. С помощью lambda это делается легко:



data = [(1, 'one'), (3, 'three'), (2, 'two')]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)  # Вывод: [(1, 'one'), (3, 'three'), (2, 'two')]


Лямбда в качестве аргументов


Lambda-функции также можно передавать как аргументы в другие функции. Это удобно для создания функций обратного вызова. Например:



def apply_function(func, value):
    return func(value)

result = apply_function(lambda x: x ** 2, 5)
print(result)  # Вывод: 25


Когда не использовать lambda?


Несмотря на свою полезность, lambda-функции не всегда являются лучшим выбором. Если функция сложная или требует много строк кода, лучше использовать def. Помни: код должен быть читабельным! В противном случае ты рискуешь запутать себя и своих коллег.



Интересные факты о lambda



  • Lambda-функции были вдохновлены функциональными языками программирования, такими как Lisp.

  • Они могут быть использованы для создания функций на лету — это как магия для программистов!

  • Существует ограничение на количество выражений в lambda — только одно! Так что не пытайся делать из них многослойные торты.



Итак, теперь ты знаешь все о lambda-функциях в Python. Используй их с умом и не забывай про читаемость кода. Удачи в программировании!



(просто бургер)


Задания для закрепления материала


Задание 1: Простая функция
1. Напишите лямбда-функцию, которая принимает одно число и возвращает его квадрат.
2. Примените эту функцию к числу 5 и выведите результат.

Задание 2: Фильтрация списка
1. Создайте список чисел от 1 до 20.
2. Используйте функцию filter() с лямбда-функцией, чтобы получить только четные числа из этого списка.
3. Выведите полученный список четных чисел.

Задание 3: Сортировка списка
1. Создайте список кортежей, где каждый кортеж содержит имя и возраст человека (например, [("Alice", 30), ("Bob", 25), ("Charlie", 35)]).
2. Используйте функцию sorted() с лямбда-функцией, чтобы отсортировать этот список по возрасту.
3. Выведите отсортированный список.

Задание 4: Применение к списку
1. Создайте список чисел от 1 до 10.
2. Используйте функцию map() с лямбда-функцией, чтобы получить список кубов этих чисел.
3. Выведите полученный список кубов.

Задание 5: Сложение двух списков
1. Создайте два списка одинаковой длины, например, list1 = [1, 2, 3] и list2 = [4, 5, 6].
2. Используйте функцию map() с лямбда-функцией, чтобы создать новый список, в котором будут суммы соответствующих элементов из обоих списков.
3. Выведите полученный список сумм.

Эти задания помогут вам лучше понять, как использовать лямбда-функции в различных контекстах и с различными функциями в Python!
Комментарии к материалу
Комментировать
Ваш комментарий: