集合的创建与使用

2022-12-21 Python基础

集合和列表很相似,类似Java中的Set集合,这张表从五个角度总结了集合和列表的区别。

功能 列表 集合
顺序 有序 无序
内容 可重复 不可重复
功能 用于数据的使用 用于数据的交集、并集、差集的获取
索引 有索引 无索引
符号 [] [1,2,3] {} {1,2,3}

# 集合的常用操作锦集

方法名称 使用效果
add 添加元素
update 在当前集合加入一个新的集合(也可以是列表,元组,字符串),如果原集合已存在新集合内的元素,则无视。
remove 删除元素,如果集合中不存在此元素,则报错。
clear 清空集合
del 删除集合,删除后无法引用
difference 获取两个集合的差集,即返回包含第一个集合但不在第二个集合内的元素
intersection 交集,即两个集合都存在的元素
union 并集,两个集合去重后的所有元素
isdisjoint 判断两个集合是否不包含相同元素,如果没有返回True,如果有返回False

# 1.集合的创建

通过set函数来创建结合,不能使用{}来创建空集合.

if __name__ == '__main__':
    a_set = set()
    b_set = set([1, 2, 3])
    c_set = {1, 2, 3}
    d_set = {}          # 错误定义
    print(type(c_set))  # <class 'set'>,c是正确定义
    print(type(d_set))  # <class 'dict'>,空定义会识别成字典类型

# 2.集合的增删改

  • add:添加元素,如果集合中已经存在则不添加,注意集合是无序的,所有添加后展示的顺序可能是不同的。
  • update:在当前集合加入一个新的集合(也可以是列表,元组,字符串),如果原集合已存在新集合内的元素,则无视。
if __name__ == '__main__':
    test_set = {1, 2, 3}

    test_set.add(6)  # 添加元素
    test_set.add(6)  # 集合中已存在的元素不会添加
    print(test_set)  # {1, 2, 3, 6}

    list1 = [2, 3, 4]
    test_set.update(list1)  # 添加新集合
    print(test_set)   # {1, 2, 3, 4, 6}

    test_set.remove(6)
    print(test_set)   # {1, 2, 3, 4}

    test_set.clear()
    print(test_set)   # set()

    del test_set
    print(test_set)  # 报错,因为del将直接抹除其内存空间

# 3.集合的差集、交集和并集

if __name__ == '__main__':
    set_1 = {1, 2, 3}
    set_2 = {3, 4, 5, 6}

    print(set_1.difference(set_2))  # 差集,{1, 2}
    print(set_1.intersection(set_2))  # 交集,{3}
    print(set_1.union(set_2))  # 并集,{1, 2, 3, 4, 5, 6}

# 4.判断两个集合是否包含相同元素

isdisjoint:判断两个集合是否不包含相同元素,如果没有返回True,如果有返回False

if __name__ == '__main__':
    set_1 = {1, 2, 3}
    set_2 = {3, 4, 5, 6}
    set_3 = {4,5,6}

    print(set_1.isdisjoint(set_2))  # False
    print(set_1.isdisjoint(set_3))  # True
上次更新: 1 年前