2017-09-21 75 views
1

我使用Python 3.6.1,並且由於其方便使用集合中的deque()。這一次,我需要獲得一個德克的第一個值,並想知道是否有可能。如何在不刪除它的情況下獲得deque的第一個值?

問題是我可以使用.popleft()來做到這一點,但它最終會同時刪除該值。我想到了list(deque01)[0],但是我擔心deque01很大或者獲取第一個值的過程重複多次時,是否耗費太多資源。有沒有什麼方法或技巧可以有效地做到這一點?

+3

只是'deque01 [0]'? –

+0

@Yakym Pirozhenko非常感謝!我以爲我也嘗試過,但沒有奏效,但它確實有效!祝你有美好的一天! – maynull

回答

4

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

注意,雖然接口看起來類似於列表,雙端只讓在左邊或最右邊的項目的快速訪問。訪問中間數據的速度較慢,而不是列表,它可以快速將數據索引到任何位置。

相關問題