Курс 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. Вычисление натуральных логарифмов в NumPy
  2. Работа с YAML в Python: PyYAML.
  3. Вакансии в Nebius
  4. Обратный список чисел
  5. Блок else в Python
  6. Символ подчеркивания в Python
  7. Модуль math: константы π и e
  8. Создание пар из последовательностей
  9. Экспорт данных в файл.
  10. Создание графики с черепахой
  11. Обработка исключений в Python
  12. Множественные конструкторы в Python
  13. Декоратор для группы пользователей в Django
  14. Срезы в Python
  15. Разделение строки на подстроки в Python
  16. Метод get для словаря
  17. Методы __repr__ и __str__ в Python
  18. Нахождение отличий в списках
  19. Печать календаря в Python
  20. Правила именования переменных
  21. Библиотека wikipedia для Python
  22. Документирование функций в Python
  23. Работа с географическими данными в Python
  24. Распаковка значений в Python
  25. Сортировка с помощью key
  26. Создание файла с проверкой ошибки
  27. Приоритет операций в Python
  28. Генерация случайных чисел в Python
  29. Модуль os в Python: работа с файлами
  30. Список переменных в Python
  31. Форматирование объектов с модулем pprint
  32. Курс Data Scientist в медицине
  33. Аргумент по умолчанию
  34. Получение срезов итераторов
  35. Методы shutil для работы с файлами
  36. Многострочные комментарии в Python
  37. Создание класса в Python
  38. Многопоточность в Python
  39. Обезопасьте ввод данных
  40. Логирование в Python
  41. Переопределение метода delitem в Python
  42. Получение локальных переменных в Python
  43. Оператор «not» в Python
  44. Работа с Event() в threading
  45. Работа с контекстными переменными
  46. Работа с часовыми поясами в Python.

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