generator- все статьи тега
python генераторы сборка мусора
Я думаю, что мой вопрос связан с этим, но не совсем похож. Рассмотрим этот код: def countdown(n): try: while n > 0: yield n n -= 1 finally: print('In the finally block') def main(): for n in countdown(10): if n == 5: break print('Counting... ', n) print('Finished counting') main() Вывод этого кода: Counting... 10 Counting... 9 Counting... 8 Counting... 7 Counting... 6 ...
Создание и сохранение.eml файл с python 3.3
Я пытаюсь генерировать электронные письма, используя стандартную библиотеку электронной почты, и сохранять их как .файлы eml. Я, должно быть, не понимаю, как электронная почта.генератор работает, потому что я продолжаю получать ошибку ' AttributeError:' str 'объект не имеет атрибута' write.' from email import generator from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText active_dir = 'c:\' class Gen_Emails(object): def __init__(self): self.EmailGen() ...
вычислить среднее значение в python для генератора
Я делаю некоторую статистическую работу, у меня есть (большая) коллекция случайных чисел для вычисления среднего значения, я хотел бы работать с генераторами, потому что мне просто нужно вычислить среднее, поэтому мне не нужно хранить числа. Проблема в том, что numpy.значит, ломается, если передать ему генератор. Я могу написать простую функцию, чтобы делать то, что я хочу, но мне интересно, есть ли правильный, встроенный способ сделать это? Было бы неплохо, если бы я мог сказать " sum (value ...
Понимание генераторов в Python
В данный момент я читаю поваренную книгу Python и в настоящее время смотрю на генераторы. Я найти его трудно получить мою голову вокруг. Поскольку я пришел из фона Java, есть ли эквивалент Java? В книге говорилось о "производителе / потребителе", однако, когда я слышу это, я думаю о потоке. Что такое генератор и зачем его использовать? Без цитирования каких-либо книг, очевидно (если вы не можете найти достойный, упрощенный ответ прямо из книги). Возможно, с примерами, если ты чувствуешь себя в ...
Вложенные генераторы Python
Я пытался реализовать обратную функцию itertools.izip на Python 2.7.1. Дело в том, что я нахожу проблему, и у меня нет объяснения. Решение 1, iunzip_v1 работает отлично. Но решение 2. iunzip_v2, работает не так, как ожидалось. До сих пор я не нашел никакой релевантной информации об этой проблеме, и, читая PEP о генераторах, кажется, что это должно работать, но это не так. import itertools from operator import itemgetter def iunzip_v1(iterable): _tmp, iterable = itertools.tee(iterable, 2) ...
Генераторные выражения и понимание списка
когда вы должны использовать выражения генератора и когда вы должны использовать список понимания в Python? # Generator expression (x*2 for x in range(256)) # List comprehension [x*2 for x in range(256)] ...
Ленивый метод для чтения большого файла в Python?
У меня очень большой файл 4GB, и когда я пытаюсь его прочитать, мой компьютер зависает. Поэтому я хочу прочитать его по частям и после обработки каждого куска сохранить обработанный кусок в другой файл и прочитать следующий кусок. есть ли способ, чтобы yield эти куски ? Я хотел бы, чтобы ленивый способ. ...
Что означает yield в PHP?
Я недавно наткнулся на этот код: function xrange($min, $max) { for ($i = $min; $i <= $max; $i++) { yield $i; } } Я никогда такого не видел yield ключевое слово раньше. Пытаюсь запустить код я получаю ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_VARIABLE в строке x что это yield ключевое слово? Это даже действительный PHP? И если да, то как мне его использовать? ...
Сопрограмма против продолжения против генератора
в чем разница между сопрограммой и продолжением и генератором ? ...
Как len (генератор ()) [дубликат]
этот вопрос уже есть ответ здесь: длина выхода генератора [дубликат] 9 ответов генераторы Python очень полезны. Они имеют преимущества перед функциями, которые возвращают списки. Однако, вы могли бы len(list_returning_function()). Есть ли способ, чтобы len(generator_function())? обновление: Конечно len(list(generator_function())) будет работать..... Я пытаюсь использовать генератор, который я создал вну ...
Python: использование рекурсивного алгоритма в качестве генератора
недавно я написал функцию для генерации определенных последовательностей с нетривиальными ограничениями. Проблема пришла с естественным рекурсивным решением. Теперь случается, что даже для относительно небольшого ввода последовательности составляют несколько тысяч, поэтому я предпочел бы использовать свой алгоритм в качестве генератора, а не использовать его для заполнения списка всеми последовательностями. вот пример. Предположим, мы хотим вычислить все перестановки строки с рекурсивной функци ...
Можно ли сбросить итераторы в Python?
можно ли сбросить итератор / генератор в Python? Я использую диктофон и хотел бы сбросить его (из модуля csv) в начало файла. ...
Как узнать, пуст ли генератор с самого начала?
есть ли простой способ тестирования, если генератор не имеет элементов, таких как peek, hasNext, isEmpty, что-то в этом роде? ...
Python: выражение генератора и выход
в Python, есть ли разница между созданием объекта генератор через выражение генератор и с помощью доходность заявление? используя доходность: 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 i in xrange(x) for j in xrange(y)) обе функции возвращают генераторные объекты, которые производят кортежи, например (0,0), (0,1) и т. д. какие-либо преимущества одного или друго ...
Когда не самое подходящее время для использования генераторов python?
это скорее наоборот для чего можно использовать функции генератора Python?: генераторы python, выражения генератора и itertools модуль-это некоторые из моих любимых функций python в эти дни. Они особенно полезны при настройке цепочек операций для выполнения на большой куче данных-я часто использую их при обработке файлов DSV. так когда же это не хорошее время для использования генератора, или выражения генератора, или ? когда я должен предпочесть zip() over itertools.izip() или range() over ...
выход в списке понимания и генераторных выражений
следующее поведение кажется мне довольно нелогичным (Python 3.4): >>> [(yield i) for i in range(3)] <generator object <listcomp> at 0x0245C148> >>> list([(yield i) for i in range(3)]) [0, 1, 2] >>> list((yield i) for i in range(3)) [0, None, 1, None, 2, None] промежуточные значения последней строки на самом деле не всегда None, Они все, что мы send в генератор, эквивалентный (я думаю) в следующий генератор: def f(): for i in range(3): yield (yi ...