• 『Python基础-11』集合 (set)


    『Python基础-11』集合 (set)


    目录:

    1. 集合的基本知识
    2. 集合的创建
    3. 访问集合里的值
    4. 向集合set增加元素
    5. 移除集合中的元素
    6. 集合set的运算


    1. 集合的基本知识

    • 集合(set)是一个无序不重复元素的序列
      • 无序
      • 不重复
    • {}来界定
      • {}内双元素的是字典-字典是键值对的组合
      • {}内单元素的是集合-集合单元素的组合
    • 无法使用位置下标
    • 元素不重复,同一集合中,每个元素都是唯一的
    • 集合也不能排序,sort()是不能使用的。
    • 集合中只能包含不可变类型(即可哈希的数据)
      • 可包含: 数字,字符串,元祖
      • 不可包含:列表,集合,字典
    • 集合的优势
      • 由于集合中的元素不能出现多次,这使得集合在很大程度上能够高效地从列表或元组中删除重复值,并执行取并集、交集等常见的的数学操作。
    • 集合的主要作用
      • 去重,把一个列表变成集合就自动去重了
      • 关系测试,测试两组数据之前的交集,差集,并集,子集,父集,对称(反向)差集等关系

    2. 集合的创建

    • 可以使用大括号 { } 或者 set()创建函数创建集合.
      • 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
      • 如果用set(),括号里只能有一个参数. 例: 可以set1=set([1,2,3,4]);不可以set1=set(1,2,3,4),会报错.
    set0 = set() #创建空集合
    set1 = set([1,2,3,4,5])
    set2 = {1,2,3,4}
    print(set0,type(set0))
    print(set1,type(set1))
    

    上述代码运行结果:

    set() <class 'set'>
    {1, 2, 3, 4, 5} <class 'set'>
    {1, 2, 3, 4} <class 'set'>
    

    [注意:] 集合是内的元素是不能重复的, 在给集合变量赋值的时候,如有重复的元素,该集合在输出的时候,重复的元素会被自动筛除.不会报错.

    set3 = {'红色','红色','黄色','黄色','蓝色','蓝色','黄色'}
    

    运行结果:

    {'蓝色', '红色', '黄色'} #重复元素在set中自动被过滤
    

    [注意:] set('字符串')和set({"字符串"})或set(["字符串"])是完全不同的含义:

    set1 = set("你好呀!") #会将字符串拆分输出
    set2 = set({"你好呀":1})
    set3 = set(['你好呀'])
    print(set1,type(set1))
    print(set2,type(set2))
    print(set3,type(set3))
    

    运行结果如下:

    {'你', '!', '呀', '好'} <class 'set'>
    {'你好呀'} <class 'set'>
    {'你好呀'} <class 'set'>
    

    3. 访问集合里的值

    • 集合和字典一样是无序的,所以不能通过下标的方式进行访问
    • 只能通过成员操作符in 和not in判断某个元素是否在集合里
    • 也可以通过for循环吧集合中的元素遍历出来

    in, not in

    in和not in,两个方法一样,这里以'in'为例:

    # 注意对比set 和 set2
    set1 = {'apple'}
    print(set1,type(set1))
    print("a" in set1)
    print("apple" in set1)
    
    set2 = set('apple')
    print(set2,type(set2))
    print("a" in set2)
    print("apple" in set2)
    

    上述代码运行结果如下:

    {'apple'} <class 'set'>
    False
    True
    {'a', 'e', 'p', 'l'} <class 'set'>
    True
    False
    

    4. 向集合set增加元素

    • 使用.add()增加单个元素
    • 使用.update增加多个元素
    set5 = {1,3,5,7}
    print("原始set:",set5)
    set5.add('abc') 
    print("add元素后的set:",set5)
    
    set6 = {1,3,5,7}
    print("原始set:")
    set6.update('abc')  #把插入的元素拆分,做为个体传入到集合中
    print("update后的set:",set6)
    

    上述代码运行后的结果:

    原始set: {1, 3, 5, 7}
    add元素后的set: {1, 3, 5, 7, 'abc'}
    
    原始set: {1, 3, 5, 7}
    update后的set: {1, 3, 5, 7, 'b', 'a', 'c'}
    

    [注意:]
    只能将不可变的值(例如一个字符串或一个元组)加入到集合中。如果试图将一个列表(list)添加到集合中,系统会返回类型错误「TyprError」。


    5. 移除集合中的元素

    • setA.remove(x):将元素 x 从集合setA中移除,如果元素不存在,则会发生错误。
    • setA.discard(x):将元素x从集合setA中移除,如果集合中没有字符串a也不会报错,自动忽略。
    • setA.pop():随机从集合setA中删除并返回一个元素
    • setA.clear():清空集合setA中所有的元素
    • del setA:彻底删除整个setA

    6. 集合set的运算

    在Python中, 集合set是基本数据类型中的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。

    除此之外, 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.

    Python 中常用的集合方法是执行标准的数学运算,例如:求并集、交集、差集以及对称差。

    下图显示了一些在集合 A 和集合 B 上进行的标准数学运算。每个韦恩(Venn)图中的红色部分是给定集合运算得到的结果。
    a23314883d9a45768b303954985cf191.jpeg


    这篇文章有详细介绍:
    入门 | 一文带你了解Python集合与基本的集合运算_搜狐科技_搜狐网



    谢谢阅读!O(∩_∩)O~

  • 相关阅读:
    layui 自定义表单验证的几个实例
    elementUI vue upload完整示例
    视频图片--多线程下载工具
    获取邮箱的DNS和MX 工具类
    10大经典排序算法动图演示
    nginx 转将http跳转到https
    Java 导出 Excel 列号数字与字母互相转换工具
    linux 下查看文件个数及大小
    文字不换行的解决办法
    溢出 省略号 ...
  • 原文地址:https://www.cnblogs.com/gybb/p/9792622.html
Copyright © 2020-2023  润新知