Лямбды и функция map()
В простейшем из всех возможных случаев функция map():
map(function, list)
принимает два аргумента:
- функцию;
- список.
Приведенное выше описание чрезвычайно упрощено:
- второй аргумент
map()может быть любым объектом, по которому можно итерироваться (например, кортеж или просто генератор); map()может принимать более двух аргументов.
Функция map() применяет функцию, переданную ее первым аргументом, ко всем элементам второго аргумента и возвращает итератор, дающий все последующие результаты функции. Вы можете использовать полученный итератор в цикле или преобразовать его в список с помощью функции list().
Вы можете увидеть роль лямбды здесь?
Посмотрите на код в редакторе - мы использовали в нем две лямбды.
Это интрига:
- создайте список
list1со значениями от0до4; - затем используйте
mapвместе с первойlambda, чтобы создать новый список, в котором все элементы были оценены как2, возведенные в мощность, взятая из соответствующего элемента из спискаlist1; - потом выводится список
list2; - на следующем шаге снова используйте функцию
map(), чтобы использовать возвращаемый генератор и напрямую печатать все значения, которые он выдает; как вы можете видеть, мы задействовали вторуюlambdaздесь - она просто возводит в квадрат каждый элемент из спискаlist2.
Попробуйте представить тот же код без лямбд. Будет лучше? Это маловероятно.