66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
# remove、del和pop都是用于从列表中删除元素的,但它们在用法、功能和行为上有所不同:
|
||
|
||
# remove(item):
|
||
|
||
# 功能:根据值来删除列表中的第一个匹配项
|
||
# 返回值:无返回值(None)
|
||
# 异常:如果列表中不存在指定的item,会抛出ValueError
|
||
# del语句:
|
||
|
||
# 功能:可以删除列表中的一个或多个元素(通过索引或切片),也可以删除整个列表,甚至删除变量本身
|
||
# 语法:del list[index](删除单个元素)或del list[start:end](删除切片)
|
||
# 返回值:无返回值
|
||
# 异常:如果指定的索引或切片范围超出列表边界,会抛出IndexError
|
||
# pop([index]):
|
||
|
||
# 功能:默认删除并返回列表中的最后一个元素。如果指定了index,则删除并返回该索引处的元素
|
||
# 返回值:返回被删除的元素
|
||
# 异常:如果列表为空或指定的index不存在,会抛出IndexError
|
||
|
||
|
||
# 应用场景
|
||
# 定义用于检查括号是否匹配的函数
|
||
|
||
# 创建一个简单的栈
|
||
|
||
|
||
class SimpleStack:
|
||
def __init__(self):
|
||
self.items = []
|
||
|
||
def push(self, item):
|
||
self.items.append(item)
|
||
|
||
def pop(self):
|
||
if not self.is_empth():
|
||
return self.items.pop()
|
||
else:
|
||
return None
|
||
|
||
def is_empth(self):
|
||
return len(self.items) == 0
|
||
|
||
def peek(self):
|
||
if not self.is_empth():
|
||
return self.items[:-1]
|
||
else:
|
||
return None
|
||
|
||
|
||
def is_balanced_parentheses(expression):
|
||
stack = SimpleStack()
|
||
pairs = {"(": ")", "{": "}", "[": "]"}
|
||
|
||
for char in expression:
|
||
if pairs.get(char):
|
||
stack.push(char)
|
||
elif stack.is_empth() or pairs[stack.pop()] != char:
|
||
return False
|
||
return stack.is_empth()
|
||
|
||
|
||
test_expressions = ["()", "()[]{}", "(]", "([)]", "{[]}"]
|
||
for expr in test_expressions:
|
||
# 输出每一个表达式的匹配结果
|
||
print(f"'{expr}' 是否平衡: {is_balanced_parentheses(expr)}")
|