Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Kenen
10 / 10 / 0
Регистрация: 22.01.2023
Сообщений: 24

Генераторы в python

06.05.2023, 16:24. Показов 919. Ответов 3

Студворк — интернет-сервис помощи студентам
Генераторы в python - это штука, которая не производит вычисления махом, а выдает результаты по требованию. Генераторные функции и выражения возвращают генераторы. Вопрос, то что возвращает map или filter это генераторы? Мы тоже, по идее, запрашиваем результаты пошагово с помощью next. А то что получаем с помощью функции iter это точно итератор, но в каких случаях это еще и генератор? Или генератор это только результат генераторных функций и выражений? Короче, кто знает за генераторы и итераторы, прошу помочь понять.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2023, 16:24
Ответы с готовыми решениями:

Генераторы на python
Написать генератор, возвращающий сначала все числа из единственного аргумента-кортежа (в порядке следования), не превосходящие его нулевой...

Функции генераторы и выражения генераторы
Всем доброго времени суток, изучаю такую тему как Функции-генераторы и появился вопрос, для чего они могут пригодиться, к примеру есть...

Генераторы
Здравствуйте! Подскажите, пожалуйста, как можно повторно использовать генераторы? Так выполняется только первый foreach: $gen =...

3
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
06.05.2023, 16:55
Итераторы и генераторы в Python разве это так трудно???
2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
06.05.2023, 17:06
Лучший ответ Сообщение было отмечено Kenen как решение

Решение

Kenen, это хороший вопрос и с ним часто бывает путаница, отсылаю тебя к доке
https://docs.python.org/3/glossary.html#glossary

По сути генератор - наследник итератора, то есть любой генератор это и итератор, но не наоборот. например

generator expression
An expression that returns an iterator.
Итератор или перебиратель - это объект умеющий собственно перебирать некий набор данных по 1 значению, пока не получит StopIteration. Он не влияет на последовательность и максимально прост.

Генератор - объект способный генерировать последовательности по определенным правилам, он сложнее в том плане что хранит некоторое состояние (как минимум способ генерации следующего элемента) а также и локальные переменные (для функции-генератора).

ТО есть итератор прост и он не виноват что перебирает скажем огромный список и занимает память, потому что его дело просто по 1 доставать, он может и что-то ленивое перебирать.
Генератор посложнее и обычно не занимает памяти в силу своей организации.
Никто не может помешать тебе написать генератор занимающий всю память или перебирать итератором свою коллекцию заведомо ленивую и не занимающую память.




Цитата Сообщение от Kenen Посмотреть сообщение
map или filter это генераторы?
спорный вопрос, я бы сказал что это точно итераторы
3
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
06.05.2023, 18:21
Цитата Сообщение от Kenen Посмотреть сообщение
Вопрос, то что возвращает map или filter это генераторы?
Чтобы было проще понять и запомнить, надо обратить внимание на функционал... функция-генератор и выражение-генератор создают итерируемые объекты, которые производят результат по запросу, а map и filter перебирают готовые итерируемые объекты и применяют к элементам функции, хоть и выдают результат также по запросу...
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2023, 18:21
Помогаю со студенческими работами здесь

Генераторы
В общем, написал функцию, она создает генератор потока для д итерируемого объекта . Генератор потока должен быть равен исходному потоку...

Генераторы списков
По значениям списка (назовем его X) из первого задания создать новый список Y с помощью генератора списков. Y должен состоять из следующих...

Генераторы цифр
Здравствуйте, ищу готовые коды либо готовые программы "генераторы цифр" чтобы можно было настроить в определенном диапазоне и выбрать...

Генераторы перестановок
Здравствуйте, прошу помощи в решение задачи такого рода: Вася составляет слова, которые можно назвать набором букв. Состоят они от 3 до 6...

Генераторы текстов
Для начала скажу, что такие сателиты пригодятся только для продажи ссылок. Как насчёт рерайта контента с помощью синономайзеров и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru