2017-09-21 1 views
1

필자는 Python 3.6.1을 사용하며 컬렉션의 deque()를 편리함 때문에 자주 사용합니다. 이번에는 deque의 첫 번째 값을 가져와 가능한지 궁금합니다.deque의 첫 번째 값을 삭제하지 않고 어떻게 얻을 수 있습니까?

문제는 내가 .popleft()을 사용하여 수행 할 수 있지만 동시에 값을 삭제하는 것입니다. list(deque01)[0]을 생각했지만 deque01이 크거나 첫 번째 값을 가져 오는 프로세스가 여러 번 반복 될 때 리소스가 많이 소모되는지 여부가 걱정됩니다. 이를 효과적으로 수행 할 수있는 방법이나 트릭이 있습니까?

+3

그냥'deque01 [0]'입니까? –

+0

@Yakym Pirozhenko 정말 고마워요! 나는 그것을 시도했지만 작동하지 않는다고 생각했지만, 실제로 작동합니다! 좋은 하루 되세요! – maynull

답변

4

deque 데이터 구조에서는 일반적으로 "peek"연산이라고하며 Python에서는 일반적인 데이터 모델 __getitem__ dummer로 구현됩니다.

아래 예제

docs에서 직접 가져온 것입니다 인터페이스가 목록과 유사하더라도, deques 만 왼쪽 또는 오른쪽 항목에 빠른 액세스를 제공

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

하는 것으로. 중간에있는 데이터에 액세스하는 것이 속도가 느립니다. 목록과 달리 색인을 생성하는 것이 더 빠릅니다.

관련 문제