Курс Python → Генераторы в Python
В Python есть концепция генераторов, которая позволяет создавать итерируемые объекты, генерируя элементы по мере необходимости. В инструкции упомянут пример с генератором, который создает массивы array_1, array_2 и array_3, а затем использует их для создания массива array_4. По логике, значения в массиве array_4 должны быть аналогичными значениям в массиве array_1.
Однако, в соответствии с PEP-289, в Python генераторы вычисляют значения немедленно только для самого внешнего выражения for, в то время как остальные выражения откладываются до момента запуска генератора. Это означает, что при использовании генераторов, значения могут быть вычислены в другом порядке, чем ожидается.
Для более ясного понимания работы генераторов в данном контексте, можно привести пример кода:
array_1 = [1, 2, 3]
array_2 = [10, 20, 30]
def gen():
for i in array_1:
for j in array_2:
yield i + j
array_3 = list(gen())
array_4 = list(gen())
В данном примере, при вызове функции gen() для создания массивов array_3 и array_4, значения будут вычислены в разном порядке из-за особенностей работы генераторов. Поэтому, значения в массиве array_4 могут отличаться от ожидаемых, что объясняется принципами работы генераторов в Python.
Другие уроки курса "Python"
- Создание словаря и множества
- Расширение информации об ошибке в Python
- Атрибуты объекта в Python
- Избегание изменяемых аргументов
- Добавление Progressbar в Python
- Работа со стеком в Python
- Именование столбцов в Python с pandas
- Комплексные числа в Python
- Условное добавление элементов в список
- Работа с collections в Python.
- Метод __irshift__ для Python
- Упрощение работы с JSON-данными в Python
- Вложенные циклы в Python
- OrderedDict — упорядоченный словарь
- Множественное присваивание в Python
- Логирование с Logzero
- Документация функции help() в Python
- Создание списков в Python
- CSV строка разделение в Python
- Обработка ошибок в Python
- Метаклассы в Python
- Подчеркивание в REPL
- Метод classmethod
- Преобразование регистра строк
- globals и locals
- Абстракции словарей и множеств в Python
- Python Метод sleep() из time
- Возведение в квадрат с помощью itertools
- Имена объектов в Python
- Перебор элементов списка в Python
- Метод rsub в Python: расширение функциональности вычитания
- Перемещение и удаление файлов в Python
- Класс Counter() для подсчета элементов
- Установка и использование emoji
- Установка random seed в Python
- Преобразование в float
- Создание генераторов
- Работа с байтовыми строками в Python
- Шаблоны и наследование в Flask
- Обработка исключений в Python
- Работа со строками в Python.
- Удаление символа из строки
- Извлечение аудио из видео
- Списковое включение в Python
- Работа с кортежами в Python















