Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 - 데크

<시간/>

Python에서 deque는 스택 및 큐와 같은 데이터 구조입니다. 큐의 양쪽 끝에서 추가 및 팝 작업을 허용합니다. 그리고 그것은 나머지 데이터 구조와 다릅니다. deque에 적용할 수 있는 다양한 작업이 아래에 나열되어 있습니다. 이 기사에서는 이러한 각 작업에 대한 예를 볼 것입니다. 컬렉션 모듈은 deque를 구현하는 데 사용됩니다.

데크 작업

다음은 deque를 사용하여 수행되는 몇 가지 유용한 작업입니다.

  • 추가() − 이 함수는 인수의 값을 deque의 오른쪽 끝에 삽입하는 데 사용됩니다.

  • appendleft() − 이 함수는 인수의 값을 deque의 왼쪽 끝에 삽입하는 데 사용됩니다.

  • 팝() − 이 함수는 deque의 오른쪽 끝에서 인수를 삭제하는 데 사용됩니다.

  • 팝레프트( ) - 이 함수는 deque의 왼쪽 끝에서 인수를 삭제하는 데 사용됩니다.

  • 확장(반복 가능) − 이 함수는 deque의 오른쪽 끝에 여러 값을 추가하는 데 사용됩니다. 전달된 인수는 반복 가능합니다.

  • extendleft(반복 가능) − 이 함수는 deque의 왼쪽 끝에 여러 값을 추가하는 데 사용됩니다. 전달된 인수는 반복 가능합니다. 왼쪽 추가의 결과로 순서가 반대입니다.

  • 역() − 이 함수는 deque 요소의 순서를 반대로 하는 데 사용됩니다.

  • 회전() − 이 함수는 인수에 지정된 수만큼 데크를 회전합니다. 지정된 숫자가 음수이면 왼쪽으로 회전합니다. 그렇지 않으면 오른쪽으로 회전합니다.

아래 프로그램은 위의 작업이 deque와 collections 모듈을 사용하여 구현되는 방법을 보여줍니다.

import collections
de = collections.deque([10,20,30,40])
print(de)
de.append(50)
print ("\nAppending at right the deque is : ")
print (de)
de.appendleft(60)
print ("\nAppending at left the deque is : ")
print (de)
de.pop()
print ("\nDeleting from right the deque is: ")
print (de)
de.popleft()
print ("\nDeleting from left the deque is: ")
print (de)
de.extend([70,80])
print ("\nExtending deque at end is : ")
print (de)
de.extendleft([100,90])
print ("\nExtending deque at beginning is : ")
print (de)
de.rotate(-2)
print ("\nRotating deque is : ")
print (de)
de.reverse()
print ("\nReversing deque is : ")
print (de)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

deque([10, 20, 30, 40])
Appending at right the deque is :
deque([10, 20, 30, 40, 50])
Appending at left the deque is :
deque([60, 10, 20, 30, 40, 50])
Deleting from right the deque is:
deque([60, 10, 20, 30, 40])
Deleting from left the deque is:
deque([10, 20, 30, 40])
Extending deque at end is :
deque([10, 20, 30, 40, 70, 80])
Extending deque at beginning is :
deque([90, 100, 10, 20, 30, 40, 70, 80])
Rotating deque is :
deque([10, 20, 30, 40, 70, 80, 90, 100])
Reversing deque is :
deque([100, 90, 80, 70, 40, 30, 20, 10])