Python list列表实现栈和队列
2023-06-13 09:12:01 时间
队列和栈是两种数据结构,其内部都是按照固定顺序来存放变量的,二者的区别在于对数据的存取顺序:
考虑到 list 类型数据本身的存放就是有顺序的,而且内部元素又可以是各不相同的类型,非常适合用于队列和栈的实现。本节将演示如何使用 list 类型变量来实现队列和栈。
Python list实现队列使用 list 列表模拟队列功能的实现方法是,定义一个 list 变量,存入数据时使用 insert() 方法,设置其第一个参数为 0,即表示每次都从最前面插入数据;读取数据时,使用 pop() 方法,即将队列的最后一个元素弹出。
如此 list 列表中数据的存取顺序就符合 先进先出 的特点。实现代码如下:
#定义一个空列表,当做队列 queue = [] #向列表中插入元素 queue.insert(0,1) queue.insert(0,2) queue.insert(0, hello ) print(queue) print( 取一个元素: ,queue.pop()) print( 取一个元素: ,queue.pop()) print( 取一个元素: ,queue.pop())
运行结果为:
[ hello , 2, 1]
取一个元素: 1
取一个元素: 2
取一个元素: hello
使用 list 列表模拟栈功能的实现方法是,使用 append() 方法存入数据;使用 pop() 方法读取数据。
append() 方法向 list 中存入数据时,每次都在最后面添加数据,这和前面程序中的 insert() 方法正好相反。
举个例子:
#定义一个空 list 当做栈 stack = [] stack.append(1) stack.append(2) stack.append( hello ) print(stack) print( 取一个元素: ,stack.pop()) print( 取一个元素: ,stack.pop()) print( 取一个元素: ,stack.pop())
输出结果为:
[1, 2, hello ]
取一个元素: hello
取一个元素: 2
取一个元素: 1
前面使用 list 实现队列的例子中,插入数据的部分是通过 insert() 方法实现的,这种方法效率并不高,因为每次从列表的开头插入一个数据,列表中所有元素都得向后移动一个位置。
这里介绍一个相对更高效的方法,即使用标准库的 collections 模块中的 deque 结构体,它被设计成在两端存入和读取都很快的特殊 list,可以用来实现栈和队列的功能。
举个例子:
queueAndStack = deque() queueAndStack.append(1) queueAndStack.append(2) queueAndStack.append( hello ) print(list(queueAndStack)) #实现队列功能,从队列中取一个元素,根据先进先出原则,这里应输出 1 print(queueAndStack.popleft()) #实现栈功能,从栈里取一个元素,根据后进先出原则,这里应输出 hello print(queueAndStack.pop()) #再次打印列表 print(list(queueAndStack))
输出结果为:
[1, 2, hello ]
1
hello
[2]
23160.html
python数据结构相关文章
- python移动app开发_神奇的Kivy,让Python快速开发移动app
- python截图识别文字_Python文字截图识别OCR工具实例解析
- Python: list列表的内置方法介绍
- 【说站】python数值类型的使用整理
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
- python attrs_Python attrs作用是什么?
- 下列python语句的输出结果是print_下列 Python语句的输出结果是「建议收藏」
- 【测试开发】python系列教程: 标准数据类型(三)List(列表)
- 【测试开发】python系列教程:元组
- Python list列表删除元素(4种方法)
- Python list列表修改元素
- Python学习:6.python内置函数详解编程语言
- Python 列表(List)详解编程语言
- Python list列表基本操作详解
- python算法排序实现快速排序
- python实现360皮肤按钮控件示例
- Python中字典(dict)和列表(list)的排序方法实例
- Python列表(list)、字典(dict)、字符串(string)基本操作小结
- Python列表list使用介绍
- Python中列表(list)操作方法汇总