Курс Python → Лямбда-функции в цикле

Анонимные функции (lambda) в Python могут быть определены в цикле с разными значениями, однако они могут вернуть один и тот же результат. Это происходит потому, что переменная x, которая используется в лямбда-функции, не является локальной для этой функции, а определена во внешней области видимости. При вызове лямбда-функции, она обращается к значению x, которое существует в момент вызова, а не в момент определения.

В случае, когда лямбда-функции определены в цикле, переменная x будет иметь последнее значение, которое ей было присвоено после завершения цикла. Например, если в конце цикла x=4, то все лямбда-функции, определенные в этом цикле, будут возвращать результат 4**2, то есть 16. Это объясняет почему все лямбда-функции, определенные в цикле, могут вернуть одинаковый результат.

Для проверки этого поведения можно изменить значение переменной x и посмотреть на результат, который возвращают лямбда-функции. Если значение x изменено до вызова лямбда-функции, то результат также изменится соответственно новому значению x.


x = 5
functions = [lambda: x**2 for x in range(5)]
for func in functions:
    print(func())

В данном примере создается список из пяти лямбда-функций, каждая из которых возвращает квадрат значения переменной x. После этого происходит итерация по списку функций и их вызов. В результате на экране будут выведены значения 0, 1, 4, 9 и 16, соответствующие квадратам значений переменной x от 0 до 4.

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

Автор урока

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

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

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

  1. Создание генераторов
  2. Работа с областями видимости переменных
  3. Работа с многоуровневыми словарями в Python
  4. Извлечение статей с newspaper3k
  5. Динамические маршруты во Flask
  6. Howdoi — получение ответов из терминала
  7. Синтаксис переменных цикла в Python
  8. Метод сравнения объектов в Python
  9. Генераторы в Python
  10. Многострочные комментарии в Python
  11. Обмен переменными в Jupyter
  12. Порядок операций в Python
  13. Подсчет элементов в Python
  14. Создание панели меню Tkinter
  15. Разделение списка на гнппы
  16. Поиск HTML-элементов с BeautifulSoup
  17. Функция pow() — возвести число в степень
  18. Логирование в Python
  19. Создание новых списков в Python
  20. Создание списков в Python
  21. Счетчик в Python: most_common()
  22. Удаление ключей из словаря
  23. Python Метод sleep() из time
  24. Тест скорости набора текста на Python
  25. Dict Comprehension в Python
  26. Перевод текста с Python Translator
  27. Работа с JSON в Python
  28. Метод index() в Python
  29. Работа с пользовательским вводом
  30. Модуль antigravity: генерация координат
  31. Логические операторы в Python
  32. UserList в Python: Описание и примеры использования
  33. Метод lt для сортировки объектов
  34. Цикл for в Python
  35. Сортировка с параметром key
  36. Сумма элементов списка
  37. Извлечение новостей с newspaper3k
  38. Удаление ключа из словаря в Python
  39. Управление фоновыми задачами в Python
  40. Обход словаря в Python
  41. Добавление кнопки в tkinter
  42. Python enumerate() для работы с индексами
  43. Управление контекстом с помощью декоратора contextmanager
  44. Работа с географическими данными в Python
  45. Оператор is в Python
  46. Генерация ключей RSA
  47. Итераторы в Python
  48. Вывод букв строки в Python

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