Python - 如何将 list 列表作为数据结构使用
列表作为栈使用
栈的特点
先进后出,后进先出
如何模拟栈?
- 先在堆栈尾部添加元素,使用 append()
- 然后从堆栈顶部取出一个元素,使用 pop()
# 模拟栈 stack = [1, 2, 3, 4, 5] # 进栈 stack.append(6) stack.append(7) # 查看栈 print(stack) # 出栈 print(stack.pop()) print(stack) # 输出结果 [1, 2, 3, 4, 5, 6, 7] 7 [1, 2, 3, 4, 5, 6]
列表作为队列使用
队列的特点
先进先出,后进后出
list 能实现队列吗?
可以,但不推荐
- 列表用作先进先出的场景非常低效
- 因为在列表的末尾进行添加、移出元素非常快
- 但是在列表的头部添加、移出元素缺很慢,因为列表其余元素都必须移动一位
如何模拟队列?
使用 collections.deque ,它被设计成可以快速从两端添加或弹出元素
# collections.deque from collections import deque # 声明队列 queue = deque(["polo", "yy", "mike"]) # 插入队列 queue.append("ok") queue.append("world") print(queue) # 移出队列 print(queue.popleft()) print(queue.popleft()) # 输出结果 deque(['polo', 'yy', 'mike', 'ok', 'world']) polo yy