Язык программирования Python




Функция map()


Для применения некоторой функции ко всем элементам последовательности применяется функция map(f, *args). Первый параметр этой функции - функция, которая будет применяться ко всем элементам последовательности. Каждый следующий n+1-й параметр должен быть последовательностью, так как каждый его элемент будет использован в качестве n-го параметра при вызове функции f(). Результатом будет список, составленный из результатов выполнения этой функции.

В следующем примере складываются значения из двух списков:

>>> l1 = [2, 7, 5, 3] >>> l2 = [-2, 1, 0, 4] >>> print map(lambda x, y: x+y, l1, l2) [0, 8, 5, 7]

В этом примере применена безымянная функция для получения суммы двух операндов ко всем элементам l1 и l2. В случае если одна из последовательностей короче другой, вместо соответствующего операнда будет None, что, конечно, собьет операцию сложения. В зависимости от решаемой задачи, можно либо видоизменить функцию, либо считать разные по длине последовательности ошибкой, которую нужно обрабатывать как отдельную ветвь алгоритма.

Частный случай применения map() - использование None в качестве первого аргумента. В этом случае просто формируется список кортежей из элементов исходных последовательностей:

>>> l1 = [2, 7, 5, 3] >>> l2 = [-2, 1, 0, 4] >>> print map(None, l1, l2) [(2, -2), (7, 1), (5, 0), (3, 4)]




Содержание  Назад  Вперед