Как я могу получить первое значение деки, не удаляя его?

Обновить

December 2018

Просмотры

938 раз

2

Я использую Python 3.6.1 и я использую Deque () из коллекций довольно часто из-за его удобства. На этот раз, мне нужно, чтобы получить первое значение и интересно деки, если это возможно.

Проблема заключается в том, что я могу сделать это с помощью .popleft(), но в конечном итоге удаление значения одновременно. Я подумал list(deque01)[0], но я волнуюсь ли это или нет так много ресурсоемкая , когда deque01 большой или процесс получения первого значения повторяется много раз. Существуют ли какие - либо методы или приемы , чтобы сделать это эффективно?

1 ответы

6

Для dequeструктуры данных, обычно это называется «заглядывать» операция, а в Python это просто реализуется с обычным DataModel в __getitem__Dunder.

Этот пример ниже взят прямо из документации :

>>> from collections import deque
>>> d = deque('ghi')                 # make a new deque with three items
>>> d[0]                             # peek at leftmost item
'g'
>>> d[-1]                            # peek at rightmost item
'i'

Обратите внимание, что даже если интерфейс похож на списки, только двусторонние очереди дают быстрый доступ в крайних левых или правых элементах. Это медленнее, доступ к данным в середине, в отличие от списка, где это быстро проиндексировать его в любом месте.

wim