几个小例子,掌握Python集合的精髓用法

几个小例子,掌握Python集合的精髓用法
最新回答
舟遥客

2023-08-24 02:55:44

Python集合(Set)的精髓用法可通过创建、操作、运算及实际应用几个方面掌握,以下是具体示例与说明

一、集合的创建
  • 方法1:通过可迭代对象创建使用set()函数将列表、元组等可迭代对象转换为集合,自动去除重复元素

    list1 = [2, 3, 2, 3, 3, 2, 1]a = set(list1)print(a) # 输出: {1, 2, 3}

    集合是无序的,输出顺序可能与输入不同。
  • 方法2:直接使用{}创建非空集合空集合必须用set()创建,因为{}表示空字典。

    a = {} # 创建空字典b = set() # 创建空集合
二、集合的常用操作
  • 添加元素

    add():添加单个元素(元素类型需不可变,如数字、字符串、元组)。

    a = set()a.add(4)print(a) # 输出: {4}

    问题:能否添加列表[2]?答案:不能,因为列表是可变类型,会引发TypeError。

    update():添加多个元素(参数为可迭代对象,如列表、元组、字符串)。

    a = set()a.update([5, 6]) # 添加列表a.update((7, 8)) # 添加元组a.update("hello") # 添加字符串(拆分为单个字符)print(a) # 输出: {5, 6, 7, 8, 'h', 'e', 'l', 'o'}

    问题:输入字符串"2,3,2"会怎样?答案:字符串会被拆分为字符,结果为{'2', ',', '3'}。

  • 删除元素

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

    a = {2, 3}a.remove(2)print(a) # 输出: {3}# a.remove(5) # 报错: KeyError: 5

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

    a = {2, 3}a.discard(2)print(a) # 输出: {3}a.discard(5) # 无报错
三、集合的运算

集合支持数学中的集合运算,适用于数据比较与筛选:

  • 并集:合并两个集合的所有元素(去重)。

    set1 = {1, 2, 3, 4}set2 = {3, 4, 5, 6}print(set1 | set2) # 输出: {1, 2, 3, 4, 5, 6}
  • 交集:返回两个集合共有的元素。

    print(set1 & set2) # 输出: {3, 4}
  • 差集:返回仅存在于第一个集合的元素。

    print(set1 - set2) # 输出: {1, 2}
  • 对称差集:返回仅存在于其中一个集合的元素。

    print(set1 ^ set2) # 输出: {1, 2, 5, 6}
四、实际应用示例
  • 数据去重:将列表转换为集合去除重复项,再转回列表。

    data = [1, 2, 2, 3, 4, 4, 4, 5]unique_data = list(set(data))print(unique_data) # 输出: [1, 2, 3, 4, 5](顺序可能不同)
  • 成员测试:快速判断元素是否属于集合。

    my_set = {1, 2, 3, 4, 5}print(3 in my_set) # 输出: Trueprint(6 in my_set) # 输出: False
总结
  • 核心特性:无序、唯一、可变(但元素必须不可变)。
  • 高效操作:去重、成员测试、集合运算的时间复杂度均为O(1)或O(n)。
  • 适用场景:数据清洗、快速查找、关系计算(如共同好友、差异分析)。

通过以上示例与练习,可全面掌握集合的基础用法与高效技巧。