• 第四天 PYTHON 集合


    Set 集合

    集合的特性:

    1、  不同元素组成

    如:s = {1,2,3,4,3,3,3,3,3}

    s = {1,2,3,4}

    2、  无序

    3、  集合中元素必须是不可变类型

    可变类型:列表、字典

    不可变类型:数字、字符串、元组

    如何设置集合

    方法1:

    S = {1,2,3,4,5,6}

    方法2:

    S = set(“hello”)              结果是 s = {‘h’,’l’,’o’,’e’}

    Set方法相当于使用for循环将元素一个一个放入集合,重复的删掉

    集合的方法:

    1、在集合中添加元素,每次只能添加1个

    s.add(元素)

    2、清空

    s.clear()

    3、  拷贝

    S1 = s.copy()

    4、  随机删除一个

    s.pop()

    5、  指定删除

    s.remove(元素)

    如果删除的字符串不存在,会报错

    6、指定删除(不报错)

    s.discard()

    如果删除的字符串不存在,不会报错

    集合的关系运算:

    例子:

    # python_l=['lcg','szw','zjw','lcg']

    # linux_l=['lcg','szw','sb']

    # p_s=set(python_l)

    # l_s=set(linux_l)

    1、  交集(共同的部分)

    方法1

    p_s.intersection(l_s)

    方法2

    p_s&l_s

    2、  并集(集合相加为一个集合)

    方法1

    P_s.union(l_s)

    方法2

    P_s|l_s

    3、  差集(左边的集合减去右边的集合)

    方法一:

    P_s.difference(l_s)

    方法二:

    P_s-l_s

    4、  交叉补集(集合相加后减去集合共同的部分)

    方法一:

    P_s.symmetric_difference(l_s)

    方法二:

    P_s^L_s

    5、  差值更新(求完差值后将结果更新到左边的集合)

    方法一:

    P_s = p_s-l_s

    方法二:

    P_s.differnece_update(l_s)

    6、  交集更新(求完交集后将结果更新到左边的集合)

    P_s.intersection_update(l_s)

    7、  判断集合是否没有交集(返回结果是True)

    P_s.isdisjoint(L_s)

    8、  判断前面的是否是后面的子集(返回结果是True)

    S1 = {1,2}

    S2 = {1,2,3}

    S1.issubset(s2)                    结果是True

    S2.issubset(s1)                    结果是False

    9、  判断前面的是否是后面的父集(返回结果是True)

    S1 = {1,2}

    S2 = {1,2,3}

    S1.issuperset(s2)                         结果是False

    S2.issuperset(s1)                         结果是True

    10、              更新或添加多个值。将左边的集合用右边的集合进行更新

    S1 = {1,2}

    S2 = {1,2,3}

    S1.update(s2)

    S1变为{1,2,3}

    S1.update([3,4])                  添加多个值

    补充说明:

    1、集合是可变类型

    2、S = frozenset(‘hello’)  用这个方法定义的是一个不可变的集合

    3、不考虑顺序的列表去重

    Names = [‘erw’,’sdf’,’erw’]                

    List(set(names))

  • 相关阅读:
    MFC菜单、工具栏和状态栏
    MFC控件
    MFC对话框
    MFC消息映射机制
    性能优化可使用的工具
    常见的内存问题分析思路
    k8s之Probe
    docker swarm
    keepalived配置虚拟ip(vip)实现双机热备以及自动切换主备
    linux安装openjdk1.8
  • 原文地址:https://www.cnblogs.com/trunkslisa/p/9189815.html
Copyright © 2020-2023  润新知