一. 简介
前面简单学习了 python3中常用的数据类型。本文来学习使用列表来实现栈的操作。
python中列表是可变的,这是区别于字符串和元组的特点。具体指的是列表可以修改,字符串和元组是不能更改的。
二. python3 中列表实现栈操作
1. 栈操作
栈是一种 "后进先出"(或 "先进后出") 的数据结构,意味着最后添加的元素最先被移除。而 列表提供了一些方法,使其比较适合用于栈操作。所以,可以使用列表(list)来实现栈的功能,例如,压栈(push)、弹栈(pop)和查看栈顶元素(peek)等。
(1) 压栈(Push):将一个元素添加到栈顶。
(2) 弹出栈(Pop):移除并返回栈顶元素,如果栈为空,则抛出异常或返回 None。
(3) 查看栈顶元素(Peek/Top):返回栈顶元素,但不移除它。如果栈为空,则返回 None或者跑车异常。
(4) 检查栈是否为空(Is Empty):判断栈是否为空。
(5) 获取栈的大小(Size):返回栈中元素的数量。
压栈操作:使用 append()方法实现压栈操作
#!/usr/bin/env python3
#创建一个空列表
my_stack = []
#压栈操作
my_stack.append("apple")
my_stack.append("grape")
my_stack.append("cherry")
print(my_stack) #输出结果:['apple', 'grape', 'cherry']
弹出栈操作:使用
#创建一个列表
my_stack = ["apple", "cherry", "orange"]
#弹出栈
pop_item = my_stack.pop()
print(pop_item) #输出 orange
print(my_stack) #输出 ['apple', 'cherry']
查看栈顶元素:通过访问列表中最后一个元素即可认为是访问的栈顶元素
#创建一个列表
my_stack = ["apple", "cherry", "orange"]
#访问栈顶的元素
item = my_stack[-1]
print(item)
检查栈是否为空,获取栈的大小:使用 len()方法来获取栈大小
#!/usr/bin/env python3
#创建一个列表
my_stack = ["apple", "cherry", "orange"]
#检查栈是否为空
is_empty = len(my_stack) == 0
print(is_empty)
#获取栈的长度
num = len(my_stack)
if num > 0:
print("stack is not empty.")
else:
print("stack is empty.")
输出如下:
False
stack is not empty.
接下来用一个实例,来说明列表如何实现栈操作。