Python3學習筆記:隊列

隊列,即先進先出的數據存儲容器。與棧(後進先出)相反。

Python中有單獨的模塊用來實現隊列,即collections中的deque。

deque初始化時,需要以列表作爲傳參。

from collections import deque
if __name__ == '__main__':
    list1=[1,2.0,3+4j,5-6j,-7+8j,-9-1j,"breakloop"]
    queue1=deque(list1)
    
    print("queue1",queue1)
    queue1.append("hello world")
    print("queue1 append",queue1)
    queue1.popleft()
    print("queue1 pop left",queue1)
    queue1.popleft()
    print("queue1 pop left",queue1)
    
    queue1.appendleft(2.0)
    print("queue1 append left",queue1)
    queue1.appendleft(1)
    print("queue1 append letf",queue1)
    queue1.pop()
    print("queue1 pop",queue1)
    queue1.pop()
    print("queue1 pop",queue1)

相應輸出爲

queue1 deque([1, 2.0, (3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop'])
queue1 append deque([1, 2.0, (3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop', 'hello world'])
queue1 pop left deque([2.0, (3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop', 'hello world'])
queue1 pop left deque([(3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop', 'hello world'])
queue1 append left deque([2.0, (3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop', 'hello world'])
queue1 append letf deque([1, 2.0, (3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop', 'hello world'])
queue1 pop deque([1, 2.0, (3+4j), (5-6j), (-7+8j), (-9-1j), 'breakloop'])
queue1 pop deque([1, 2.0, (3+4j), (5-6j), (-7+8j), (-9-1j)])

deque提供了4個方法,append, appendleft, pop, popleft. 

開發人員可以自定義隊列的左右段,哪邊是入口,哪邊是出口。利用該4個方法實現隊列的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章