如何在不删除它的情况下获得deque的第一个值?

问题描述:

我使用Python 3.6.1,并且由于其方便使用集合中的deque()。这一次,我需要获得一个德克的第一个值,并想知道是否有可能。如何在不删除它的情况下获得deque的第一个值?

问题是我可以使用.popleft()来做到这一点,但它最终会同时删除该值。我想到了list(deque01)[0],但是我担心deque01很大或者获取第一个值的过程重复多次时,是否耗费太多资源。有没有什么方法或技巧可以有效地做到这一点?

+3

只是'deque01 [0]'? –

+0

@Yakym Pirozhenko非常感谢!我以为我也尝试过,但没有奏效,但它确实有效!祝你有美好的一天! – maynull

对于deque数据结构,这通常称为“窥视”操作,而在Python中它只是用通常的数据模型的__getitem__ dunder实现。

下面这个例子是直接取自docs

>>> 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' 

注意,虽然接口看起来类似于列表,双端只让在左边或最右边的项目的快速访问。访问中间数据的速度较慢,而不是列表,它可以快速将数据索引到任何位置。