Курс Python → Функция map() и ленивая оценка

Функция map() в Python позволяет применять заданную функцию к каждому элементу последовательности. Однако, одним из недостатков map() является «ленивая оценка» (Lazy Evaluation). Это означает, что вместо того, чтобы сразу обработать весь объект, функция возвращает ссылку на итератор. Пока не вызвать метод, который преобразует итератор в список, кортеж или другой объект, обработка функцией не произойдет.

Для улучшения производительности языка Python, создатели внесли изменения в 3-й версии. Однако, это может привести к тому, что мы не увидим результат обработки данных до тех пор, пока не преобразуем итератор в нужный объект. На небольших объемах данных это не является проблемой, но на практике, где данные разнообразны, это может привести к ошибкам на продакшене, так как мы не сможем заметить потенциальные проблемы заранее.

Пример использования map() с ленивой оценкой:


# Создаем список чисел
numbers = [1, 2, 3, 4, 5]

# Определяем функцию, которую хотим применить
def square(x):
    return x ** 2

# Применяем функцию к каждому элементу списка
result = map(square, numbers)

# Печатаем результат
print(result) # Вывод: 

Чтобы увидеть результат обработки, необходимо преобразовать итератор в список, кортеж или другой объект:


# Преобразуем итератор в список
result_list = list(result)

# Печатаем результат
print(result_list) # Вывод: [1, 4, 9, 16, 25]

Таким образом, при использовании функции map() важно помнить о «ленивой оценке» и преобразовывать итератор в нужный объект для получения результата обработки данных.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Использование обратной косой черты в f-строках
  2. Обработка ошибок в JSON данных
  3. Работа с рекламными данными в Pandas
  4. Генераторы в Python
  5. Удаление дубликатов из списка
  6. Объединение Python и Shell
  7. Кортеж в Python: создание и использование
  8. Работа с NumPy
  9. Область видимости переменных
  10. Форматирование строк в Python
  11. Декораторы в Python
  12. Вызов функций по строке в Python.
  13. Декоратор проверки активности
  14. Метод __imod__ для Python
  15. Ограничение итераций в Python
  16. Управление памятью в numpy.
  17. Запрос пароля с помощью getpass
  18. Чтение бинарного файла в Python.
  19. Распаковка элементов массива
  20. Создание задания в Cron
  21. Метод enumerate() в Python
  22. Генераторы в Python
  23. Работа с буфером обмена на Python
  24. Разделение строки с помощью re.split()
  25. Применение функции к списку
  26. Хеши в Python
  27. Преобразование строки в число
  28. Обработка исключений в Python
  29. Структурирование именованных констант
  30. Mad Libs Generator
  31. PATCH-запрос с библиотекой requests
  32. Применение функции к элементам списка
  33. Присоединение элементов коллекции
  34. Срезы в Python
  35. Обработка исключений в Python 3
  36. Преобразование числа в список цифр
  37. Проектирование Singleton с метаклассом
  38. Функция __init__ в Python
  39. Обработка ошибок в Python
  40. Вычисление разности множеств в Python
  41. Переопределение метода len
  42. Курс Data Scientist в медицине
  43. Сортировка в Python
  44. Итерации в Python

Marketello читают маркетологи из крутых компаний