Одной из первых функций, с которой сталкиваются начинающие программисты на Python, является функция map()
. Эта функция применяет заданную функцию к каждому элементу последовательности (например, списка) и возвращает результаты.
В Python 2 эта функция возвращает список. Например, применив функцию chr()
, которая преобразует числа в соответствующие символы ASCII, к списку чисел, получим следующий результат:
>>> map(chr, [66, 53, 0, 94]) ['B', '5', '\x00', '^']
Однако, при переходе на Python 3 поведение функции map()
изменилось. Теперь эта функция возвращает объект map, а не список. Такой же пример на Python 3 даст следующий результат:
>>> map(chr, [66, 53, 0, 94]) <map object at 0x00AF5570>
Это изменение внесено для повышения эффективности: в Python 3 функция map()
создает итератор, который производит вычисления по мере необходимости, а не сразу для всего списка. Это может сэкономить память при работе с большими списками.
Тем не менее, если нужно получить результаты в виде списка, это можно сделать, преобразовав объект map в список с помощью функции list()
. Вот как это выглядит на Python 3:
>>> list(map(chr, [66, 53, 0, 94])) ['B', '5', '\x00', '^']
Таким образом, для получения списка в Python 3 из результатов функции map()
достаточно просто преобразовать результат в список.
Добавить комментарий