Вопросы с тегом «generator»

117
Эквивалент C ++ шаблону генератора Python

У меня есть пример кода Python, который мне нужно воспроизвести на C ++. Мне не требуется какое-либо конкретное решение (например, решения yield на основе совместной подпрограммы, хотя они также могут быть приемлемыми ответами), мне просто нужно каким-то образом воспроизвести семантику. питон Это...

104
Функция пустого генератора Python

В python можно легко определить функцию итератора, поместив ключевое слово yield в тело функции, например: def gen(): for i in range(100): yield i Как я могу определить функцию генератора, которая не дает значения (генерирует 0 значений), следующий код не работает, поскольку python не может знать,...

99
Python: использование рекурсивного алгоритма в качестве генератора

Недавно я написал функцию для генерации определенных последовательностей с нетривиальными ограничениями. Проблема пришла с естественным рекурсивным решением. Теперь случается, что даже для относительно небольшого ввода последовательности составляют несколько тысяч, поэтому я предпочел бы...

90
Python: выражение генератора против yield

В Python есть ли разница между созданием объекта- генератора с помощью выражения генератора и использованием оператора yield ? Использование yield : def Generator(x, y): for i in xrange(x): for j in xrange(y): yield(i, j) Использование выражения генератора : def Generator(x, y): return ((i, j) for...

88
enumerate () - создание генератора в Python

Я хотел бы знать, что происходит, когда я передаю результат функции генератора в enumerate () python. Пример: def veryBigHello(): i = 0 while i < 10000000: i += 1 yield "hello" numbered = enumerate(veryBigHello()) for i, word in numbered: print i, word Перечисление повторяется лениво или все...

86
Если range () является генератором в Python 3.3, почему я не могу вызвать next () для диапазона?

Возможно, я стал жертвой дезинформации в сети, но я думаю, что более вероятно, что я просто что-то неправильно понял. На основании того, что я узнал до сих пор, range () является генератором, а генераторы могут использоваться как итераторы. Однако этот код: myrange = range(10) print(next(myrange))...

86
как разбить итерацию на куски постоянного размера

Возможный дубликат: как в Python разбить список на части равного размера? Я удивлен, что не смог найти «пакетную» функцию, которая принимала бы на вход итерацию и возвращала бы итерабельность итераций. Например: for i in batch(range(0,10), 1): print i [0] [1] ... [9] или же: for i in...

85
Синтаксис для пропуска создания тестов, ресурсов и помощников для `rails generate controller`?

Я прочитал справку и попробовал следующую команду, чтобы пропустить создание тестов, ресурсов и вспомогательных файлов. $ bin/rails generate controller home index --helper false --assets false --controller-specs false --view-specs false create- app/controllers/home_controller.rb route get...

83
Когда не самое подходящее время для использования генераторов Python?

Это скорее обратное тому, для чего вы можете использовать функции генератора Python? : генераторы python, выражения генератора и itertoolsмодуль - одни из моих любимых функций python в наши дни. Они особенно полезны при настройке цепочек операций для работы с большим объемом данных - я часто...

82
Где я могу найти System.Web.Helpers, System.Web.WebPages и System.Web.Razor?

Я слежу за этой статьей о RazorGenerator, и в ней говорится, что я должен добавить ссылки на: System.Web.Helpers.dll System.Web.WebPages.dll System.Web.Razor.dll Только один я могу видеть , когда я делаю Add Referenceэто System.Web.Razor, но я не знаю , где остальные из них....

82
Разница между async / await и выходом ES6 с генераторами

Я только что читал эту фантастическую статью « Генераторы », и в ней четко освещается эта функция, которая является вспомогательной функцией для обработки функций генератора: function async(makeGenerator){ return function () { var generator = makeGenerator.apply(this, arguments); function...

81
Как пройти через генератор

Как можно пройти через генератор? Я думал об этом так: gen = function_that_returns_a_generator(param1, param2) if gen: # in case the generator is null while True: try: print gen.next() except StopIteration: break Есть ли более питонический способ?...

50
Сжатые генераторы Python, у которых 2-й короче: как извлечь элемент, который используется молча

Я хочу проанализировать 2 генератора (потенциально) разной длины с помощью zip: for el1, el2 in zip(gen1, gen2): print(el1, el2) Однако, если gen2есть меньше элементов, один дополнительный элемент gen1«потребляется». Например, def my_gen(n:int): for i in range(n): yield i gen1 = my_gen(10) gen2 =...

11
Самый питонируемый вызывающий призыв Истинный?

Класс collections.defaultdictпринимает фабрику по умолчанию, используемую для генерации значения по умолчанию. Если значения, содержащиеся в dictобъекте -like, должны иметь значение по умолчанию False, экземпляр может быть создан как: d_false = defaultdict(bool) Какой самый питонный способ добиться...

10
В PHP: в чем разница между «return», «yield», «yield from» и смешиванием yield и return в одной и той же функции?

Разница между return и yieldказалась очевидной, пока я не выяснил, была также yield fromи возможность комбинировать и то returnи другое в одной и yieldтой же функции! Мое понимание returnбыло то, что все после не было выполнено, верно? Однако: function generate(): iterable { return [1, 2, 3]; }...