Есть ли другие очереди в стандартной библиотеке? - PullRequest
0 голосов
/ 03 декабря 2011

хочу в очередь

lambda : Popen(.....)

Позвонить / подождать позже. Затем добавьте еще несколько приостановленных Попенс в очередь, затем потреблять их снова и т. д.

Основной модуль очереди очень заботится о синхронизации, и это делает API чувствуют себя немного странно в некоторых местах. Меня не волнует синхронизация (однопоточная Программа Popen просто делает свою работу и выдает исключение при ошибке, и они не влияют окружение любыми важными способами (они генерируют файлы)

Должен ли я просто использовать генератор, который добавлю к нему позже. Если так, то каков хороший способ добавить элементы в генераторы, вызвав

gena = itertools.chain(gena,[item))

каждый раз кажется бесполезным.

Ответы [ 3 ]

3 голосов
/ 03 декабря 2011

Вы можете использовать collection.deque :

from collections import deque

queue = deque()
queue.append(new) # append
current = queue.popleft() # first item
3 голосов
/ 03 декабря 2011

Да, вы можете использовать deque (collection.deque), который представляет собой список, который вы можете эффективно нажимать и вставлять с любого конца.Вы также можете использовать список и не беспокоиться о неэффективности, поскольку это, вероятно, не имеет значения.

2 голосов
/ 03 декабря 2011

Так как вас не волнует многопоточность, логичным выбором будет collection.deque .

...