• Python之第六章 内置容器 --- 集合


    目录

    Python之第六章 内置容器 --- 集合

    1.定义

    2.作用

    3.集合使用

    4.格式

    5.集合应用的核心 --- 去重

    6.集合的添加与删除

    添加 --- setname. add(element)

    删除 --- setname.remove(element)

    7.集合的jiao、并、差集

    交集 --- &

    并集 --- |

    差集 --- -

    ​编辑

    对称差集 --- ^

    8.集合判断是否相等

    9.特殊操作

    10.冻结集合

    11.查看内置方法

    列表、元组、字典、集合的区别


    Python之第六章 内置容器 --- 集合

    1.定义

    集合是一个无序不有重复的序列

    2.作用

    用于关系测试和消除重复值

    3.集合使用

    使用 { } 框定元素,使用逗号分隔

    4.格式

    1. setname = { value1,value2,value3,...,valuen}
    2. set1 = {1, 2, 3, 4, 5}
    3. set2 = {'name', 'age', 'num', 'score'}
    4. set3 = set('命运给予我们的不是失望之酒,而是机会之杯')
    5. set4 = set([1.2, 3.4, 5.6])
    6. set5 = set()  # 空集合,不能为{}
    7. set6 = set('apple', )  # 必须增加逗号
    8. print(set1, '\n', set2, '\n', set3, '\n', set4, '\n', set5, '\n', set6, '\n', )
    9. # 集合本质为无序的可变序列,输出时顺序可能不同
    10. 结果:
    11. {1, 2, 3, 4, 5}
    12. {'age', 'score', 'name', 'num'}
    13. {'失', '机', '予', '命', '不', '望', '会', '杯', '们', '的', '运', '之', '我', ',', '是', '酒', '给', '而'}
    14. {1.2, 3.4, 5.6}
    15. set()
    16. {'l', 'p', 'a', 'e'}

    5.集合应用的核心 --- 去重

    1. list1 = [1, 2, 1, 5, 4, 8, 1, 8, 1, 2, 9, 19, 1, 1, 1, 8, 91, 5, 1, 1, 1]
    2. print(list1)
    3. set1 = set(list1)
    4. print(set1)
    5. 结果:
    6. [1, 2, 1, 5, 4, 8, 1, 8, 1, 2, 9, 19, 1, 1, 1, 8, 91, 5, 1, 1, 1]
    7. {1, 2, 4, 5, 8, 9, 19, 91}

    6.集合的添加与删除

    添加 --- setname. add(element)

    1. set1 = set(['java', 'c', 'go', 'php'])
    2. set1.add('python')
    3. print(set1)
    4. 结果:
    5. {'php', 'c', 'python', 'java', 'go'}

    删除 --- setname.remove(element)

    1. set1 = set(['java', 'c', 'go', 'php'])
    2. set1.add('python')
    3. print(set1)
    4. set1.remove('java')
    5. print(set1)
    6. 结果:
    7. {'go', 'java', 'php', 'c', 'python'}
    8. {'go', 'php', 'c', 'python'}

    7.集合的jiao、并、差集

    交集 --- &

     

    并集 --- |

     

    差集 --- -

     

    对称差集 --- ^

     

    1. set1 = set('abcdefg')
    2. set2 = set('efghijk')
    3. # 交集
    4. print(set1 & set2)
    5. # 并集
    6. print(set1 | set2)
    7. # 差集
    8. print(set1 - set2)
    9. # 对称差集
    10. print(set1 ^ set2)
    11. 结果:
    12. {'f', 'e', 'g'}
    13. {'a', 'j', 'i', 'd', 'k', 'f', 'h', 'c', 'b', 'e', 'g'}
    14. {'a', 'c', 'b', 'd'}
    15. {'a', 'j', 'i', 'c', 'b', 'd', 'k', 'h'}
    16. Process finished with exit code 0

    8.集合判断是否相等

            符合 --- == !=

            返回值 --- Ture False

    1. A = {1, 2, 3, 4}
    2. B = {3, 4, 5, 6}
    3. C = {1, 2, 3, 4}
    4. print(A == B, A == C)
    5. 结果:
    6. False True

    9.特殊操作

            sidisjoint( ) --- 两个集合没有共同元素时返回Ture

    1. A = {1, 2, 3, 4}
    2. B = {5, 6, 7, 8}
    3. print(A.isdisjoint(B))
    4. 结果:
    5. True

            issubset() --- 测试是否为子集

    1. A = {1, 2, 3, 4}
    2. B = {5, 6, 7, 8}
    3. print(A.issubset(B))
    4. 结果:
    5. False

            issuperset( ) --- 测试是否为父集

    1. A = {1, 2, 3, 4}
    2. B = {1, 2, 3, 4, 5, 6, 7, 8}
    3. print(A.issuperset(B))
    4. 结果:
    5. False
    6. update( ) --- 将集合加到另一个集合中
    7. A = {1, 2, 3, 4}
    8. B = { 5, 6, 7, 8}
    9. A.update(B)
    10. print(A )
    11. 结果:
    12. {1, 2, 3, 4, 5, 6, 7, 8}

            difference_update( ) --- 删除集合中重复的元素

    1. A = {1, 2, 3, 4}
    2. B = {3, 4, 5, 6, 7, 8}
    3. A.difference_update(B)
    4. print(A)
    5. 结果:
    6. {1, 2}

    10.冻结集合

            定义 --- set是可变数据类型,frozenset是不可变的数据类型集合称为冻结集合,定义好内容后不可修改、删除、操作参照元组

    1. x = frozenset([1, 2, 3])
    2. y = frozenset([5, 7, 9])
    3. print(x, y)
    4. print(x & y, x | y)
    5. print(x[0]) #报错
    6. 结果:
    7. frozenset({1, 2, 3}) frozenset({9, 5, 7})
    8. frozenset() frozenset({1, 2, 3, 5, 7, 9})
    9. Traceback (most recent call last):
    10.  File "E:\pythontext\test3.py", line 2112, in
    11.    print(x[0])
    12. TypeError: 'frozenset' object is not subscriptable

    11.查看内置方法

            dir()用于查找方法名

    1. print(dir(list))
    2. 结果:
    3. ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

    列表、元组、字典、集合的区别

    数据结构是否可变是否重复是否有序定义符号
    list可变可重复有序[ ]
    tuple不可变可重复有序( )
    dict可变可重复无序{ key : value}
    set可变不可重复无序{ }
  • 相关阅读:
    极限学习机和自适应稀疏表示算法 (EA-SRC)(Matlab代码实现)
    【网络】计算机网络基础
    pytest之fixture
    LeetCode 2352. 相等行列对
    threejs视频教程学习(5):水天一色小岛
    C数据结构-堆的实现思路和堆排序的实现
    go切片和指针切片
    DjangoRestFramework框架三种分页功能的实现 - 在DjangoStarter项目模板中封装
    长时序栅格数据缺失值插补
    从0开始搭建Web自动化测试框架全网最牛最全教程
  • 原文地址:https://blog.csdn.net/qq_57289939/article/details/127810774