python에서 창고를 실현하는 세 가지 방법
1)list
2)collections.deque
3)queue.LifoQueue
목록 실행 창고 사용하기
python의 내장 데이터 구조list는 창고를 실현하는 데 사용되며, append () 로 창고 꼭대기에 요소를 추가하고, pop () 는 나중에 먼저 나오는 순서로 요소를 삭제할 수 있습니다.
그러나 목록 자체에 단점이 있다. 주요 문제는 목록이 계속 확대될 때 속도 병목에 부딪히는 것이다. 목록은 동적 수조이기 때문에 새로운 요소를 추가하고 새로운 요소를 저장할 공간이 없을 때 메모리 블록을 자동으로 재분배하고 원래의 메모리 블록에 저장된 값을 복사한다. 이로 인해 일부 append () 작업은 더 많은 시간을 소모하게 된다.
>>> stack = []
>>> #append() fuction to push
... #element in list
...
>>> stack.append('hello')
>>> stack.append('world')
>>> stack.append('!')
>>> print('Initial stack')
Initial stack
>>> print(stack)
['hello', 'world', '!']
>>> #pop() function to pop element
... #from stack in LIFO order
...
>>> print('
Element poped from stack')
Element poped from stack
>>> print(stack.pop())
!
>>> print(stack.pop())
world
>>> print(stack.pop())
hello
>>> print('
Stack after all elements are poped')
Stack after all elements are poped
>>> print(stack)
[]
컬렉션을 사용합니다.deque 구현 창고
python 창고도 deque 클래스로 실현할 수 있습니다. 용기 양쪽에서 append와 팝 작업을 더욱 빠르게 진행하려면 deque가 목록보다 더 적합합니다. deque는 O(1) 시간의 append와 팝 작업을 제공할 수 있고, 목록은 O(n) 시간이 필요합니다.
>>> from collections import deque
>>> stack = deque()
>>> # append() fuction to push
... #element in list
...
>>> stack.append('hello')
>>> stack.append('world')
>>> stack.append('!')
>>> print('Initial stack')
Initial stack
>>> print(stack)
deque(['hello', 'world', '!'])
>>> #pop() function to pop element
... #from stack in LIFO order
...
>>> print('
Element poped from stack')
Element poped from stack
>>> print(stack.pop())
!
>>> print(stack.pop())
world
>>> print(stack.pop())
hello
>>> print('
Stack after all elements are poped')
Stack after all elements are poped
>>> print(stack)deque([])
queue 모듈로 창고 구현
Queue 모듈에는 LIFO queue, 즉 스택 구조가 있습니다. put () 와 get () 작업으로 Queue에서 데이터를 추가하고 얻습니다.
>>> from queue import LifoQueue
>>> stack = LifoQueue(maxsize = 3)
>>> print(stack.qsize())
0
>>> stack.put('hello')
>>> stack.put('world')
>>> stack.put('!')
>>> print('
Element poped from stack')
Element poped from stack
>>> print(stack.get())
!
>>> print(stack.get())
world
>>> print(stack.get())
hello
>>> print('
Empty:', stack.empty())
Empty: True
이상은python에서 창고를 실현하는 세 가지 방법의 상세한 내용입니다. 더 많은python 창고 실현에 관한 자료는 저희 다른 관련 글에 주목하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.