что такое деки в Python?
Когда вы пишете какие-либо программы, будь то алгоритм машинного обучения или другие программы, вам нужно выбрать для них правильные структуры данных. Выбор правильных структур данных — это то, что делает вашу программу быстрой, эффективной с точки зрения использования памяти, простой в реализации и легко читаемой. Возможно, вы знакомы с распространенными структурами данных Python, такими как List, Dictionary, String и т. д. Но использовали ли вы Deques?
Очереди — это структуры данных в Python, которые в основном действуют как Очереди структура данных (FIFO). Хотя на первый взгляд он выглядит как список, за кулисами это дважды связанный список, который предлагает отличные производительность (сложность по времени) для добавления и удаления элементов из списка, либо с начала, либо с конца списка.
Вот почему, как одна из важнейших причин, он полезен для создания программ. Будь то алгоритмы машинного обучения или другие программы, Deques полезны. Если у вас есть программная логика, в которой вам нужно удалить/добавить элемент из любой позиции в списке, а не только из конца, вам следует использовать Deque, это обеспечит высокую производительность . Некоторые распространенные варианты использования Deques включают планирование заданий, сканирование веб-страниц.
Давайте рассмотрим использование Deques, его основные преимущества и, конечно же, недостатки.

Все описанные выше операции — popleft, popright, appendleft, appendright — имеют сложность O(1) в двухсторонней очереди, поскольку она оптимизирована для нее. Теперь, если бы вы выполняли любую из этих операций в структурах данных List, сложность была бы намного хуже, это была бы O(n) сложность. Это основной момент и самое большое преимущество использования Deques.
Все является компромиссом. Deque обеспечивает высокую производительность, однако они также потребуют много дополнительной памяти, поэтому не очень эффективно используют память.
Подпишитесь на меня, чтобы получать дополнительные материалы и узнавать больше о компьютерных науках и машинном обучении.