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个方法实现队列的操作。

你可能感兴趣的:(人工智能,Python3,Python3)