Автор оригинала: Pankaj Kumar.
Функция Python Map () используется для применения функции на всех элементах указанного объекта ITERALABLE и возврата. Объект карты Python – это итератор, поэтому мы можем повторять его элементы. Мы также можем преобразовать объект карты к объектам последовательности, такие как список, кортеж и т. Д. Использование их заводских функций.
Функция Python Map ()
Синтаксис функции Python Map ():
map(function, iterable, ...)
Мы можем передавать несколько намеренных аргументов на карту () функции () в этом случае, в этом случае указанная функция должна иметь много аргументов. Функция будет применяться к этим утекаемым элементам параллельно. С несколькими утерянными аргументами карта ITERATOR останавливается, когда самый короткий итог исчерпан.
Пример Python Map ()
Давайте напишем функцию, которая будет использоваться с функцией карты ().
def to_upper_case(s): return str(s).upper()
Это простая функция, которая возвращает прописные строки строки входного объекта.
Я также определяю функцию утилиты для печати элементов итератора. Функция будет печатать элементы итератора с белым пространством и будет повторно использовать во всех фрагментах кода.
def print_iterator(it): for x in it: print(x, end=' ') print('') # for new line
Давайте посмотрим на карту () функциональный пример с различными типами повторных документов.
Карта Python () со строкой
# map() with string map_iterator = map(to_upper_case, 'abc') print(type(map_iterator)) print_iterator(map_iterator)
Выход:
A B C
Карта Python () с кортежом
# map() with tuple map_iterator = map(to_upper_case, (1, 'a', 'abc')) print_iterator(map_iterator)
Выход:
1 A ABC
Карта Python () со списком
map_iterator = map(to_upper_case, ['x', 'a', 'abc']) print_iterator(map_iterator)
Выход:
X A ABC
Преобразование карты в список, кортеж, набор
Поскольку объект карты является итератор, мы можем пропустить его как аргумент к заводским методам для создания списка, кортежа, множества и т. Д.
map_iterator = map(to_upper_case, ['a', 'b', 'c']) my_list = list(map_iterator) print(my_list) map_iterator = map(to_upper_case, ['a', 'b', 'c']) my_set = set(map_iterator) print(my_set) map_iterator = map(to_upper_case, ['a', 'b', 'c']) my_tuple = tuple(map_iterator) print(my_tuple)
Выход:
['A', 'B', 'C'] {'C', 'B', 'A'} ('A', 'B', 'C')
Карта Python () с лямбдой
Мы можем использовать функции лямбда с картой (), если мы не хотим его повторно использовать. Это полезно, когда наша функция маленькая, и мы не хотим определять новую функцию.
list_numbers = [1, 2, 3, 4] map_iterator = map(lambda x: x * 2, list_numbers) print_iterator(map_iterator)
Выход:
2 4 6 8
Python Map () Многократные аргументы
Давайте посмотрим на пример использования функции MAP () с несколькими уникальными аргументами.
# map() with multiple iterable arguments list_numbers = [1, 2, 3, 4] tuple_numbers = (5, 6, 7, 8) map_iterator = map(lambda x, y: x * y, list_numbers, tuple_numbers) print_iterator(map_iterator)
Выход: 5 12 21 32
Обратите внимание, что наша функция имеет два аргумента. ITERATOR MAP MAP – это результат применения этой функции к двум повторным элементам параллельно. Давайте посмотрим, что произойдет, когда ейтеары имеют разные размеры.
# map() with multiple iterable arguments of different sizes list_numbers = [1, 2, 3, 4] tuple_numbers = (5, 6, 7, 8, 9, 10) map_iterator = map(lambda x, y: x * y, list_numbers, tuple_numbers) print_iterator(map_iterator) map_iterator = map(lambda x, y: x * y, tuple_numbers, list_numbers) print_iterator(map_iterator)
Выход:
5 12 21 32 5 12 21 32
Таким образом, когда аргументы имеют разные размеры, то функция карты применяется к элементам, пока один из них не исчерпан.
Карта Python () с функцией нет
Давайте посмотрим, что произойдет, когда мы передаем функцию как никто.
map_iterator = map(None, 'abc') print(map_iterator) for x in map_iterator: print(x)
Выход:
Traceback (most recent call last): File "/Users/pankaj/Documents/github/journaldev/Python-3/basic_examples/python_map_example.py", line 3, infor x in map_iterator: TypeError: 'NoneType' object is not callable
Ссылка: Официальная документация