Как реализованы deques в Python и когда они хуже списков ?

Недавно я начал исследовать, как различные структуры данных реализованы в Python, чтобы сделать мой код более эффективным. Изучая, как работают списки и двухсторонние очереди, я обнаружил, что могу получить преимущества, когда хочу сдвигать и отменять сдвиг, сокращая время с O (n) в списках до O (1) в двухсторонних (списки, реализованные как массивы фиксированной длины, которые имеют копироваться полностью каждый раз, когда что-то вставляется спереди и т. д.). То, что я не могу найти, так это особенности реализации двухсторонней очереди и особенности ее недостатков по сравнению с списки. Может ли кто-нибудь просветить меня по этим двум вопросам?

63
задан wim 10 December 2015 в 21:30
поделиться