"""set_basics.py - Python 集合基础示例 包含常见的集合操作示例:创建、添加、删除、成员判断、集合运算、去重、推导式等。 运行后会打印每个示例的结果,并在代码中注释预期输出。 """ def main(): # 1. 创建集合 fruits = {"apple", "banana", "orange"} nums = {1, 2, 3, 3, 4} # 重复元素会自动去重 empty_set = set() # 空集合必须用 set(),不能写 {},{} 是空字典 mixed = {1, "python", (2, 3)} # 集合元素必须是可哈希对象 print("fruits ->", fruits) print("nums ->", nums) # {1, 2, 3, 4} print("empty_set ->", empty_set) print("mixed ->", mixed) # 2. 添加元素 fruits.add("grape") fruits.add("apple") # 已存在,重复添加不会报错 print("after add ->", fruits) # 3. 删除元素 fruits.remove("banana") print("after remove('banana') ->", fruits) # discard() 不会因为不存在而报错 fruits.discard("pear") print("after discard('pear') ->", fruits) # pop() 随机弹出一个元素 popped = fruits.pop() print("pop() ->", popped, "; after pop ->", fruits) # 4. 成员判断 print("'apple' in fruits ->", 'apple' in fruits) print("'mango' in fruits ->", 'mango' in fruits) # 5. 长度与遍历 print("len(fruits) ->", len(fruits)) for item in fruits: print("loop ->", item) # 6. 集合运算:并集、交集、差集、对称差集 a = {1, 2, 3, 4} b = {3, 4, 5, 6} print("a | b ->", a | b) # 并集 print("a.union(b) ->", a.union(b)) print("a & b ->", a & b) # 交集 print("a.intersection(b) ->", a.intersection(b)) print("a - b ->", a - b) # 差集 print("a.difference(b) ->", a.difference(b)) print("a ^ b ->", a ^ b) # 对称差集 print("a.symmetric_difference(b) ->", a.symmetric_difference(b)) # 7. 子集和超集 c = {1, 2} print("c.issubset(a) ->", c.issubset(a)) print("a.issuperset(c) ->", a.issuperset(c)) # 8. 集合推导式 squares = {x * x for x in range(1, 8) if x % 2 == 0} print("squares ->", squares) # 9. 去重 names = ["alice", "bob", "alice", "charlie", "bob"] unique_names = set(names) print("unique_names ->", unique_names) # 10. 冰冻集合(不可变集合) frozen = frozenset({1, 2, 3}) print("frozen ->", frozen) # frozen.add(4) # 会报错,因为 frozenset 不可修改 # 11. 集合的特点 # - 无序 # - 元素唯一 # - 可变(set)/ 不可变(frozenset) # - 适合去重、快速判断成员是否存在 if __name__ == '__main__': main()