Курс 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. Регулярные выражения: метод match
  2. Создание уникального множества
  3. Декоратор Property в Python
  4. Игра Виселица на Python
  5. Измерение времени выполнения кода
  6. Многопоточность и асинхронное программирование в Python
  7. Метод rrshift для пользовательских объектов
  8. Работа с массивами в Numpy
  9. Принципы программирования
  10. Преобразование документов в PDF с помощью Spire.Office
  11. Класс Counter() для подсчета элементов
  12. Создание вкладок с TKinter
  13. Условное добавление элементов в список
  14. Экспорт данных в файл.
  15. Работа с множествами в Python
  16. Пустой оператор pass в Python
  17. Оператор «is not» в Python
  18. Управление браузером с Selenium
  19. Явный импорт переменных
  20. Методы Python для работы с данными
  21. Ветвление выражения в Python
  22. Операции с датами в Python
  23. Множества и frozenset
  24. Метод __getitem__ в Python
  25. F-строки в Python 3.8
  26. Удаление дубликатов из списка
  27. Официальный канал Python в Telegram
  28. Модуль pprint
  29. Операции с матрицами в Python
  30. Обработка исключений в Python
  31. Хеширование паролей с солью
  32. Роль запятой в Python
  33. Применение функции к каждому элементу списка
  34. Глобальные переменные в Python
  35. Лямбда-функции в цикле
  36. Создание и инициализация объектов
  37. Атрибуты класса и экземпляра
  38. Создание новых функций через partial
  39. Просмотр внешнего файла в Python
  40. Частичное применение функций в Python
  41. Импорт классов из другого файла
  42. Работа с географическими данными.
  43. Установка User-Agent в Python
  44. Транспонирование 2D-массива с помощью zip
  45. Выборка чисел
  46. Разделение строки с помощью split()
  47. Генераторы списков в Python
  48. Проверка класса объекта

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