English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python에서의 명명된 튜플

Deque는基本上는 스택과 큐 구조의 일반화로, 왼쪽에서 오른쪽으로 초기화됩니다. 그는 list 객체를 사용하여 双端队列를 생성하고,弹出 및 추가에 대해 O(1)시간 복잡도.

Dequeis는 표준 라이브러리 클래스로,collections모듈.

먼저 사용하기 위해, 그를 수집 표준 라이브러리 모듈에 입력해야 합니다.

import collections

본 절에서는 Deque 클래스의 일부 기능을 볼 수 있습니다.

双端队列的附加功能

두 가지不同类型的附加 exist. 이append()메서드는 큐의 오른쪽에 요소를 추가하는 데 사용됩니다。appendleft()메서드는 큐의 왼쪽에 요소를 추가하는 데 사용됩니다。

예제 코드

import collections as col
#Insert some elements into the queue at first
my_deque = col.deque('124dfre')
   print('Dequeue: ') + str(my_deque)
      #insert x at right and B at left
      my_deque.append('x')
      my_deque.appendleft('B')
   print('Dequeue after appending: ' + str(my_deque)

출력 결과

Dequeue: deque(['1', '2', '4', 'd', 'f', 'r', 'e'])
Dequeue after appending: deque(['B', '1', '2', '4', 'd', 'f', 'r', 'e', 'x'])

双端队列的弹出功能

추가와 마찬가지로, 두 가지不同类型的弹出函数 exist. 이pop()메서드는 큐에서 가장 오른쪽의 요소를 제거하고 반환하는 데 사용됩니다.popleft()메서드는 큐에서 가장 왼쪽의 요소를 제거하고 반환하는 데 사용됩니다。

예제 코드

import collections as col
#Insert some elements into the queue at first
my_deque = col.deque('124dfre')
   print('Dequeue: ') + str(my_deque)
      #delete item from right and left
      item = my_deque.pop()
   print('Popped Item: ' + str(item))
      item = my_deque.popleft()
   print('Popped Item: ' + str(item))
print('Dequeue after pop operations: ' + str(my_deque)

출력 결과

Dequeue: deque(['1', '2', '4', 'd', 'f', 'r', 'e'])
Popped Item: e
Popped Item: 1
Dequeue after pop operations: deque(['2', '4', 'd', 'f', 'r'])

Deque와 관련된 기능

Deque의 일부 기능은 프로젝트와 관련된 정보를 얻기 위해 사용됩니다. 예를 들어,index()count()等等。index 메서드는 요소가 처음으로 나타나는 인덱스를 얻는 데 사용됩니다. 요소에 매개변수가 전달되지 않으면 전체 목록을 선택하고, 특정 제한을 지정하면 해당 제한 내의 인덱스를 확인합니다. 또한, 이count()메서드는 데크에서 프로젝트의 빈도를 계산합니다.

예제 코드

import collections as col
#Insert some elements into the queue at first
my_deque = col.deque('AABCDDEFD')
   print('Dequeue: ') + str(my_deque)
      
   print('D의 인덱스:', + str(my_deque.index('D')))
print('D의 범위 내 인덱스 5 to 8 is: ' + str(my_deque.index('D', 5, 8))

   print('A의 발견:', + 
print('D의 발견:', + str(my_deque.count('D')))

출력 결과

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
D의 인덱스:4
D의 범위 내 인덱스 5 to 8 는: 5
A의 발견 2
D의 발견 3

데크에서insert()remove()메서드

append와 pop 함수를 이미 데크에서 본 것입니다. 각각 요소를 삽입하고 제거하는 데 사용됩니다. 또한 삽입과 제거와 관련된 두 가지 메서드가 있습니다.insert()수자를 삽입하는 메서드입니다. 이 경우 삽입 인덱스를 제공할 수 있습니다. 따라서 지정된 위치에该项目를 삽입할 수 있습니다. 그리고remove()요소의 첫 번째 발견을 삭제하는 메서드입니다.

예제 코드

import collections as col
#Insert some elements into the queue at first
my_deque = col.deque('AABCDDEFD')
print('Dequeue: ') + str(my_deque)
# G와 H를 지정된 위치에 삽입 5, 7 각각
my_deque.insert(5, 'G')
my_deque.insert(7, 'H')
print('추가 후 데크: ' + str(my_deque)
# D 글자의 첫 번째 발견을 삭제
my_deque.remove('D')
print('제거 후 데크: ' + str(my_deque)

출력 결과

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
추가 후 데크: deque(['A', 'A', 'B', 'C', 'D', 'G', 'D', 'H', 'E', 'F', 'D'])
제거 후 데크: deque(['A', 'A', 'B', 'C', 'G', 'D', 'H', 'E', 'F', 'D'])

데크에서 확장 기능

다양한 요소를 데크에 추가하는 확장 기능입니다. 리스트, 튜플과 같은 셋을 사용하여 여러 값을 제공할 수 있습니다. 두 가지 확장 기능이 있습니다.extend()메서드는 오른쪽에 요소를 추가하는 데 사용되며, 반복과 유사합니다.append()메서드.extendleft()메서드는 왼쪽에 요소를 추가하는 데 사용되며, 반복과 유사합니다.appendleft()메서드.

예제 코드

import collections as col
#Insert some elements into the queue at first
my_deque = col.deque('AABCDDEFD')
print('Dequeue: ') + str(my_deque)
#Extend by adding 1, 3, 5, 7 to the right and x, y, z to the left
my_deque.extend([1, 3, 5, 7]
my_deque.extendleft(['x', 'y', 'z'])
print('Dequeue after Extending:') + str(my_deque)

출력 결과

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
Dequeue after Extending: deque(['z', 'y', 'x', 'A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D', 1, 3, 5, 7]

양 끝 큐의 반전 및 회전 기능

우리는 이를 사용할 수 있습니다.reverse()메서드는 큐의 순서를 반전합니다. 또 다른 메서드도 있습니다.rotate()。rotate 메서드를 사용하면, 양 끝 큐는 매개변수로 지정된 숫자로 회전할 수 있습니다. 매개변수가 음수면 왼쪽으로 회전하고, 양수면 오른쪽으로 회전합니다。

예제 코드

import collections as col
#Insert some elements into the queue at first
my_deque = col.deque('AABCDDEFD')
print('Dequeue: ') + str(my_deque)
my_deque.reverse()
print('Deque after Reversing:') + str(my_deque)
#rotate to the right, 3 elements
my_deque.rotate(3)
print('Deque after rotating:') + str(my_deque)

출력 결과

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
Deque after Reversing:deque(['D', 'F', 'E', 'D', 'D', 'C', 'B', 'A', 'A'])
Deque after rotating:deque(['B', 'A', 'A', 'D', 'F', 'E', 'D', 'D', 'C'])