删除元素:4种方法

17.4 删除元素:4种方法

remove(元素):删除指定元素,不存在则报错。

discard(元素):删除指定元素,不存在不报错,更安全。

pop():随机删除一个元素,返回被删除的元素;空集合报错。

clear():清空集合所有元素,保留空集合对象。

💡 不确定元素是否存在时用 discard,想删除并获取返回值用 pop()。

remove 和 discard 的区别

discard 比 remove 更安全,不确定元素是否存在时用 discard。

s = {1, 2, 3, 4, 5}  # 创建集合
s.remove(3)  # 删除元素 3
print("remove删除3:", s)
s.discard(99)  # 元素99不存在,不报错
s.discard(2)  # 删除元素 2
print("discard删除2:", s)

pop() 和 clear()

pop() 返回被删除的元素;clear() 只清空元素,集合对象保留。

s = {1, 2, 3, 4, 5}  # 创建集合
del_num = s.pop()  # pop() 随机删除一个元素,返回被删除的值
print("pop随机删除元素:", del_num)
print("剩余集合:", s)
s.clear()  # 清空集合所有元素
print("clear清空集合:", s)

⚠️ 常见错误与正确对比

❌ 错误写法
s.remove(99)
✅ 正确写法
s.discard(99)

📌 remove 删除不存在的元素会报 KeyError,应改用 discard。

❌ 错误写法
empty_set.pop()
✅ 正确写法
if s: s.pop()

📌 空集合调用 pop() 会报 KeyError,应先判断非空。