Решение 1. Квадраты
def square_numbers(numbers):
return list(map(lambda x: x ** 2, numbers))
print(square_numbers([1, 2, 3, 4, 5]))map применяет lambda к каждому числу, list материализует результат.
Решение 2. Сортировка по возрасту
def sort_by_age(people):
return sorted(people, key=lambda person: person[1])
people = [("Mike", 19), ("Nancy", 35), ("Charlie", 23), ("Oscar", 33)]
print(sort_by_age(people))Ключ сортировки - второй элемент кортежа.
Решение 3. Сортировка по возрасту и имени
def sort_by_age_and_name(people):
return sorted(people, key=lambda person: (-person[1], person[0]))
people = [("Mike", 19), ("Nancy", 35), ("Oscar", 33), ("Frank", 33)]
print(sort_by_age_and_name(people))Отрицательный возраст даёт убывание, имя остаётся по алфавиту.
Решение 4. Сотрудники
def process_employees(employees):
filtered = filter(lambda emp: emp["age"] > 30, employees)
updated = map(lambda emp: {**emp, "salary": emp["salary"] * 1.2}, filtered)
return list(updated)
employees = [
{"name": "Alice", "age": 25, "salary": 50000},
{"name": "Bob", "age": 35, "salary": 60000},
{"name": "Charlie", "age": 40, "salary": 70000},
]
print(process_employees(employees)){**emp, ...} создаёт новый словарь сотрудника и не меняет исходный.