Files
python/20-24/lianxi-remove.py
T
2026-05-06 11:21:42 +08:00

66 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)}")