栈:先进后出(只有唯一一个出入口)
1.LifoQueue
put()进栈
get()出栈并读取
qsize()栈的大小from queue import LifoQueue st = LifoQueue(maxsize=100) st.put('hello') # 进栈 st.put('world') st.put(453) print(st.qsize()) # 栈的大小 print(st.get()) # 出栈并读取 print(st.get()) print(st.get()) print(st.empty()) # 判断是否为空 '''输出结果 3 453 world hello True'''
2.list
append()进栈
pop()出栈并读取
len()栈的大小
st = [] st.append('hello') # 进栈 st.append('world') st.append(453) print(st) print(len(st)) # 栈的大小 print(st[len(st) - 1]) # 打印栈顶,功能是top() print(st[-1]) # 打印栈顶,功能是top() print(st.pop()) # 弹出栈顶 print(st.pop()) print(st.pop()) print(st) if st: # 判断是否为空 print('Not Empty') else: print('Empty') '''输出结果 ['hello', 'world', 453] 3 453 453 453 world hello [] Empty'''
3.deque
append()进栈
pop()出栈并读取
len()栈的大小
from collections import deque st = deque() st.append('hello') # 进栈 st.append('world') st.append(453) print(st) print(len(st)) # 栈的大小 print(st[len(st) - 1]) # 打印栈顶,功能是top() print(st[-1]) # 打印栈顶,功能是top() print(st.pop()) # 弹出栈顶 print(st.pop()) print(st.pop()) print(st) if st: # 判断是否为空 print('Not Empty') else: print('Empty') '''输出结果 deque(['hello', 'world', 453]) 3 453 453 453 world hello deque([]) Empty'''
list与deque的用法比较像,但是deque的效率远高于list
可以使用如下方法去测
from time import *
start = time()
'''所测代码运行时间部分……'''
end = time()
print('time=', end - start)