Python Tutorial

Класс map() в Python

Класс 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']
Built-in