# GESP等级：三级 | GESP Python 三级考点

"""
知识点④：discard() 安全删除（不存在不报错）
时间：10:00-30:00
"""

# ========== discard() 安全删除 ==========
fruits = {"apple", "banana", "orange"}
print("初始集合:", fruits)

fruits.discard("banana")
print("删除banana后:", fruits)   # {'apple', 'orange'}

# ========== discard() 删除不存在的元素——安全！ ==========
fruits.discard("grape")         # grape 不在集合中
print("删除不存在的grape后:", fruits)  # {'apple', 'orange'} —— 没有任何变化
print("程序正常运行，没有报错！")

# ========== remove vs discard 对比 ==========
nums = {1, 2, 3}

# remove 不安全
nums.remove(2)                  # 安全，因为2存在
# nums.remove(10)               # 如果取消注释会报错！

# discard 安全
nums.discard(1)                 # 安全
nums.discard(100)               # 安全！100不存在也不报错
print("对比实验后的nums:", nums)  # {3}

"""
remove vs discard 总结：
  remove(元素)  —— 元素不存在 → 报错 KeyError
  discard(元素) —— 元素不存在 → 什么都不发生（安全）

记忆钩子：
  discard安全删 —— 有就删，没有拉倒，绝不报错！
"""
