首页 论坛 置顶 Python中的集合及集合运算

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #25152

    今天我们将深入探讨一种独特而强大的Python数据结构:集合

    当你想要存储唯一项、去除重复项或执行数学操作(如并集、交集和差集)时,集合非常有用。

    让我们来探索集合是如何工作的,以及它们的使用场景! 🐍


    📦 你将学到什么

    • 集合是什么以及如何创建它们
    • 集合与列表和元组的区别
    • 内置集合方法
    • 集合操作:并集、交集、差集、对称差集
    • 实际应用案例

    🔹 1. 什么是集合?

    集合是一种无序可变无索引的集合,不允许重复值

    🔹 语法:

    my_set = {1, 2, 3}

    您还可以使用 set() 构造函数创建一个空集合:

    empty_set = set()

    ⚠️ {} 创建的是一个空字典,而不是一个集合!


    ✅ 2. 为什么使用集合?

    • 自动去除重复项
    • 非常适合成员测试in
    • 数学运算中效率极高
    • 理想用于比较值的集合

    🔧 3. 基本集合操作

    创建一个集合

    fruits = {"apple", "banana", "cherry"}
    

    添加项目

    fruits.add("orange")

    移除项目

    fruits.remove("banana")     # 如果未找到则引发错误
    
    fruits.discard("banana") # 安全移除(无错误)

    清除所有项目

    fruits.clear()

    复制一个集合

    new_set = fruits.copy()

    🔁 4. 设置循环

    for fruit in fruits:
        print(fruit)
    
    注意:由于集合是无序的,输出可能不遵循插入顺序。

    🔀 5. 集合操作

    让我们来看两个集合:

    a = {1, 2, 3, 4}
    b = {3, 4, 5, 6}

    🔸 并集 – 所有唯一项

    print(a | b)              # {1, 2, 3, 4, 5, 6}
    print(a.union(b))         # 相同的结果

    🔸 交集 – 公共项

    print(a & b)              # {3, 4}
    print(a.intersection(b))  # 相同的结果

    🔸差异 – 在 A 中但不在 B 中的项

    print(a - b)              # {1, 2}
    print(a.difference(b))    # 相同的结果

    🔸 对称差异 – 在 A 或 B 中,但不在两者中

    print(a ^ b)                      # {1, 2, 5, 6}
    print(a.symmetric_difference(b)) # 相同

    🔎 6. 成员测试

    print(3 in a)     # True
    print(10 in a)    # False

    在集合中,这比在列表中更快!


    ⚠️ 7. 集合与其他集合的比较

    特性 列表 元组 集合
    有序
    可变性
    允许重复
    可索引
    快速成员查找

    🧪 现实世界示例

    1. 从列表中移除重复项

    nums = [1, 2, 2, 3, 4, 4, 5]
    unique_nums = list(set(nums))
    print(unique_nums)  # [1, 2, 3, 4, 5]

    2. 检查共同兴趣

    alice_hobbies = {"reading", "coding", "traveling"}
    bob_hobbies = {"coding", "gaming"}
    common = alice_hobbies & bob_hobbies print(common) # {'coding'}

    3. 句子中的唯一单词

    sentence = "this is a test this is only a test"
    unique_words = set(sentence.split()) print(unique_words)

    🧠 回顾

    今天你学到了:

    • 集合是什么以及如何创建和修改集合
    • 集合会去除重复项并加速成员测试
    • 集合操作:并集、交集、差集等
    • 使用集合进行清理和比较的实际案例

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。