博客
关于我
Python_集合
阅读量:798 次
发布时间: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 PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>
    Python命名中尾随下划线有什么好处?
    查看>>
    Python启动脚本
    查看>>
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>