Курс 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"
- Создание генераторов
- Работа с областями видимости переменных
- Работа с многоуровневыми словарями в Python
- Извлечение статей с newspaper3k
- Динамические маршруты во Flask
- Howdoi — получение ответов из терминала
- Синтаксис переменных цикла в Python
- Метод сравнения объектов в Python
- Генераторы в Python
- Многострочные комментарии в Python
- Обмен переменными в Jupyter
- Порядок операций в Python
- Подсчет элементов в Python
- Создание панели меню Tkinter
- Разделение списка на гнппы
- Поиск HTML-элементов с BeautifulSoup
- Функция pow() — возвести число в степень
- Логирование в Python
- Создание новых списков в Python
- Создание списков в Python
- Счетчик в Python: most_common()
- Удаление ключей из словаря
- Python Метод sleep() из time
- Тест скорости набора текста на Python
- Dict Comprehension в Python
- Перевод текста с Python Translator
- Работа с JSON в Python
- Метод index() в Python
- Работа с пользовательским вводом
- Модуль antigravity: генерация координат
- Логические операторы в Python
- UserList в Python: Описание и примеры использования
- Метод lt для сортировки объектов
- Цикл for в Python
- Сортировка с параметром key
- Сумма элементов списка
- Извлечение новостей с newspaper3k
- Удаление ключа из словаря в Python
- Управление фоновыми задачами в Python
- Обход словаря в Python
- Добавление кнопки в tkinter
- Python enumerate() для работы с индексами
- Управление контекстом с помощью декоратора contextmanager
- Работа с географическими данными в Python
- Оператор is в Python
- Генерация ключей RSA
- Итераторы в Python
- Вывод букв строки в Python















