# 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)}")