Шаг 128.
Python: тонкости программирования. Общие структуры данных Python. Очереди (с дисциплиной доступа FIFO). list - ужасно меееедленная очередь

    На этом шаге мы рассмотрим этот класс для конструирования очереди.

    В качестве очереди можно использовать обычный список, но с точки зрения производительности такое решение не идеально.


См. документацию Python "Применение списков в качестве очередей": https://docs.python.org/3/tutorial/datastructures.html#using-lists-as-queues.

    Списки для этой цели довольно медленные, потому что вставка в начало очереди или удаление элемента влекут за собой сдвиг всех других элементов на одну позицию, требуя O(n) времени.

    Поэтому мы не рекомендуем использовать список в качестве импровизированной очереди в Python (если только вы не имеете дело с небольшим количеством элементов).

>>> q = []
>>> s.put('есть')
>>> s.put('спать')
>>> s.put('программировать')
>>> q
['есть', 'спать', 'программировать']
# Осторожно: это очень медленная операция! 
>>> q.pop(0)
'есть'

    На следующем шаге мы рассмотрим класс collections.deque.




Предыдущий шаг Содержание Следующий шаг