Слишком много делалось над строкой добавления, как бы умно и лаконично это ни казалось. Когда кто-то появляется из итерации, которая в настоящее время повторяется, это путает процесс count и python итератора, или это то, что я предполагаю. То же самое происходит в Excel, когда вы удаляете строки, одновременно просматривая их (но не вверх). Я просто предположил, что Python смог бы как-то справиться с этим самостоятельно.
Problemati c code.
if self.queue_to_pop == 0: # trigger a dump to form a new sub-queue
for _ in stack_to_push_to:
self.queue_to_pop.append(self.stack_incoming.pop()) #!!!!!!
Метод pop служил интересам автоматической работы в обратном направлении, которого я хочу, и я также думал, что это сэкономит время и пространство, но в конечном итоге это не сработало, и я нашел две альтернативы, которые работают. Мне было бы интересно узнать, есть ли способ уменьшить сложность моих решений.
Вариант 1:
for i in range(len(self.stack_to_push_to)-1,-1,-1):
self.queue_buffer.append(self.stack_to_push_to[i])
self.stack_to_push_to = []
Вариант 2:
for _ in reversed(self.stack_to_push_to):
self.queue_buffer.append(_)
self.stack_to_push_to = []
I Я не видел, чтобы кто-то еще опубликовал эту проблему, поэтому я подумал, что стоит поделиться ею, и надеюсь, что это просветит других.