Курс 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. Замеры производительности в Python
  2. Копирование объектов в Python
  3. Ключевое слово global в Python
  4. Именование переменных в Python
  5. Установка библиотек в Python
  6. Метод __irshift__ для побитового сдвига вправо
  7. Удаление символов новой строки в Python.
  8. GitHub в Telegram: подписка на уведомления
  9. Перевернуть список в Python
  10. Генераторы в Python
  11. Операторы присваивания в Python
  12. Работа с срезами в Python
  13. Обязательные аргументы в Python
  14. Функция с *args.
  15. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  16. Работа с дробями в Python
  17. Поиск частого элемента
  18. Декораторы в Python
  19. Измерение времени выполнения кода
  20. Обмен значений переменных в Python
  21. Метод __irshift__ для Python
  22. Удаление элемента по индексу
  23. Поиск индексов в списке
  24. Философия Python
  25. Настройка вывода в Numpy
  26. Моржовый оператор в Python 3.8
  27. Динамические маршруты во Flask
  28. Concrete Paths — метод .with_suffix()
  29. Magic Commands — улучшение работы с Python
  30. Регистрация на TenChat
  31. Проверка памяти объекта
  32. Бесконечные списки в Python
  33. Построение графиков в терминале с bashplotlib
  34. Установка и использование pyshorteners
  35. Перегрузка операторов в Python
  36. Перевод текста с Python Translator
  37. Структура данных словарь в Python
  38. Работа с zip-архивами в Python
  39. Списковое включение в Python
  40. Управление IP-адресами через прокси
  41. Транспонирование 2D-массива с помощью zip
  42. Красивый вывод списка
  43. Разделение строк в Python
  44. Преобразование кортежа в словарь.
  45. Преобразование чисел в восьмеричную строку
  46. Бинарный поиск

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