Класс map() в Python
В Python, map является классом, который создаёт объект map. Этот объект является итератором и генерирует результаты на лету. Когда map применяется к функции и итерируемому объекту, он возвращает объект map, который можно итерировать для получения результатов применения этой функции к каждому элементу итерируемого объекта.
В примере squared_numbers является объектом класса map, который представляет итератор, вычисляющий квадраты чисел при итерации по нему.
def square(number):
return number ** 2
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
# squared_numbers теперь является объектом map
print(type(squared_numbers)) # <class 'map'>
# Преобразование результата в список
squared_numbers_list = list(squared_numbers)
print(squared_numbers_list) # Выведет [1, 4, 9, 16, 25]
Ещё пример. Eсть список файлов. Необходимо получить список только с именами, без расширения. В map в качестве функции определим lambda-функцию, которая будет разделять каждый элемент на список по точке с конца и брать первый элемент от полученного списка. Вторым аргументом подадим список. Конвертируем map-object в список. Выведем полученный результат.
files = [
"file.txt",
"file2.doc",
"file3.xxx.pdf",
"file3_xxx.zzz.exe"
]
file_names = list(map(lambda x: x.rsplit('.', 1)[0], files))
print(file_names)
# ['file', 'file2', 'file3.xxx', 'file3_xxx.zzz']