博客
关于我
Python_集合
阅读量:797 次
发布时间:2023-03-09

本文共 2123 字,大约阅读时间需要 7 分钟。

集合

集合是一种用于 去重 和 关系运算 的数据结构。它的主要作用是将不同的值存放在一起,便于进行集合运算。

集合的定义

集合可以包含多个元素,每个元素之间用逗号分割。集合的定义非常简单:集合中的每个元素必须是 不可变类型,并且集合中的元素是唯一的。集合的存储顺序与元素的插入顺序无关,集合中的元素是无序存储的。

集合遵循以下三个原则:

  • 每个元素必须是 可hash 的类型(即不可变类型)。
  • 集合中的元素是唯一的,没有重复的元素。
  • 集合是无序存储的。
  • 补充: 可变类型是不可hash的类型。例如,列表、字典等不可变类型是可hash的,而字符串也是可hash的。

    集合的主要操作

    1. 元素个数

    可以通过 len() 函数来获取集合的元素个数。

    s = {'asd', 'zxc', 1, 2}print(len(s))  # 输出:4

    2. 元素检查

    可以通过 in 和 not in 运算符来检查元素是否存在于集合中。

    set = {'asd', 'zxc', 1, 2}a = 1 in setprint(a)  # 输出:Truea = 1 not in setprint(a)  # 输出:False

    3. 合集

    可以使用 | 运算符来合并两个集合。

    python_l = ['lcg', 'szw', 'zjw', 'lcg']linux_l = ['lcg', 'szw', 'sb']p_s = set(python_l)l_s = set(linux_l)print(p_s | l_s)  # 输出:{'lcg', 'szw', 'zjw', 'sb'}

    4. 交集

    可以使用 & 运算符来获取两个集合的交集。

    python_l = ['lcg', 'szw', 'zjw', 'lcg']linux_l = ['lcg', 'szw', 'sb']p_s = set(python_l)l_s = set(linux_l)print(p_s & l_s)  # 输出:{'lcg', 'szw'}

    5. 差集

    可以使用 - 运算符来获取两个集合的差集。

    python_l = ['lcg', 'szw', 'zjw', 'lcg']linux_l = ['lcg', 'szw', 'sb']p_s = set(python_l)l_s = set(linux_l)print('差集', p_s - l_s)  # 输出:{'zjw'}print('差集', l_s - p_s)  # 输出:{'sb'}print(l_s.difference(p_s))  # 输出:{'sb'}

    6. 子集和父集

    可以使用 issubset()、issuperset() 和 superset() 等方法来判断集合之间的关系。

    s1 = {1, 2}s2 = {1, 2, 3}print(s1.issubset(s2))  # 输出:Trueprint(s2.issubset(s1))  # 输出:Falseprint(s2.issuperset(s1))  # 输出:True

    7. 随机删除

    可以使用 pop() 方法随机删除集合中的一个元素。

    s = {'sb', 1, 2, 3, 4, 5, 6}s.pop()  # 随机删一个元素

    8. 指定删除

    可以使用 remove() 和 discard() 方法来删除集合中的元素。remove() 方法会抛出异常,如果元素不存在;而 discard() 方法不会抛出异常。

    s = {'sb', 1, 2, 3, 4, 5, 6}s.remove('sb')  # 删除元素'sb's.remove('hellol')  # 元素不存在,会抛出异常s.discard('sbbbb')  # 删除元素不存在不会报错print(s)  # 输出:{1, 2, 3, 4, 5, 6}

    9. 更新

    可以使用 update() 方法来更新集合中的元素。如果要添加多个元素,可以将它们放入一个列表或元组中传递给 update() 方法。

    s1 = {1, 2}s2 = {1, 2, 3}s1.update(s2)  # 更新后的集合为:{1, 2, 3}s1 = {1, 2, 3}s2 = {'alex'}s1.update(s2)  # 更新后的集合为:{1, 2, 3, 'a', 'l', 'e', 'x'}

    10. 交叉补集

    可以使用 ^ 运算符来获取两个集合的交叉补集。

    python_l = ['lcg', 'szw', 'zjw', 'lcg']linux_l = ['lcg', 'szw', 'sb']p_s = set(python_l)l_s = set(linux_l)print('交叉补集', p_s ^ l_s)  # 输出:{'zjw', 'sb'}

    总结

    集合是编程中非常有用的数据结构。它可以帮助我们去重、进行关系运算,并且支持多种集合操作。熟练掌握集合的使用方法,可以让我们的代码更加高效和简洁。如果你对集合还有其他疑问,欢迎在评论区留言!

    转载地址:http://ijlfk.baihongyu.com/

    你可能感兴趣的文章
    python办公自动化基础搜索文件
    查看>>
    python知识:@classmethod和@staticmethod的异同
    查看>>
    python前端之css
    查看>>
    Python制作进度条,原来有这么多方法
    查看>>
    Python制作简单的学生成绩管理系统
    查看>>
    python制作甘特图的基本知识(附Demo)
    查看>>
    python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
    查看>>
    Python到底能做什么?它的优点在哪?
    查看>>
    python利用pytorch库导出图像分割算子
    查看>>
    python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
    查看>>
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>
    python判断字符串包含中文_Python 判断字符串是否包含中文
    查看>>
    python删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>