• 集合的使用


    • set(字符串),就把列表转换成集合。注意集合的大括号组成{},像字典,但是不是
    • 取集合的交集:集合1.intersection(集合2)
    • 取集合的并集:集合1.union(集合2)
    • 取两个集合的差集:集合1.difference(集合2)=集合1在集合2里没有的数值
    • 判断集合1是不是集合2的子集:集合1.issubset(集合2)
    • 判断集合1是不是集合2的父集:集合1.issuperset(集合2)
    • 反向差集(对称差集):把两个集合里都有的项,去除了。集合1.symmetric_difference(集合2)
    • 如果两个集合没有交集,那么返回为True集合1.isdisjoint(集合2)
    • 除了用英文单词来表示这些集合的关系,还可以用字符来表达求交集:交集1 & 交集2
    • 求并集: 集合1 | 集合2
    • 求差集:集合1-集合2,在集合1里不在集合2
    • 求对称差集:集合1 ^ 集合2
    • 增删改查:
    • 增加:集合.add(x) #添加1项 集合.update{[1,2,3]} #添加多项
    • 删除:集合.remove(x),指定删除x,如果x不存在会报错
    • 集合.pop(x)随机删除一个数值,并返回这个数值。
    • 集合.discard(x),删除指定一个值x,如果x不存在,不会报错。
    • 集合的长度:len(集合)
    • 测试x是否是s的成员:字符串,列表,字典,集合,全部都是这么写!
    • x in s
    • 测试x是否不是s的成员:
    • x not in s

    集合的特点

    集合是一个无序的,不重复的数组组合

    1、去重,找出2个列表里重复的项。把一个列表变成集合就自动去重了。

    2、关系测试,测试两组数据之前的交集、差集、并集等关系

    常用操作:

    set(字符串),就把列表转换成集合。注意集合的大括号组成{},像字典,但是不是

    这种写法,是直接把列表变成集合:

    取集合的交集:

    集合1.intersection(集合2)

    取集合的并集:

    集合1.union(集合2)

    取两个集合的差集:

    集合1.difference(集合2)=集合1在集合2里没有的数值

    判断集合1是不是集合2的子集:

    集合1.issubset(集合2)

    判断集合1是不是集合2的父集:

    集合1.issuperset(集合2)

    反向差集(对称差集):把两个集合里都有的项,去除了。

    集合1.symmetric_difference(集合2)

     如果两个集合没有交集,那么返回为True

    集合1.isdisjoint(集合2)

    除了用英文单词来表示这些集合的关系,还可以用字符来表达

    求交集:交集1 & 交集2

    求并集: 集合1 | 集合2

    求差集:集合1-集合2,在集合1里不在集合2

    求对称差集:集合1 ^ 集合2

     增删改查:

    增加:

    集合.add(x)   #添加1项

    集合.update{[1,2,3]} #添加多项

    删除:

    集合.remove(x),指定删除x,如果x不存在会报错

    集合.pop(x)随机删除一个数值,并返回这个数值。

    集合.discard(x),删除指定一个值x,如果x不存在,不会报错。

    集合的长度:

    len(集合)

    测试x是否是s的成员:字符串,列表,字典,集合,全部都是这么写!

    x in s

    测试x是否不是s的成员:

    x not in s

    集合的浅复制:

    集合.copy()

    返回set集合的一个浅复制

      等价操作符 说明
    所有集合类型
    len(s)   集合基数:集合s中元素个数
    set([obj])   可变集合工厂函数:ojb必须是支持迭代的,由obj中的元素创建集合,否则创建一个空集合
    frozenset([obj])   不可变集合工厂函数:执行方式好set()方法相同,但它返回的是不可变集合
      obj in s 成员测试
      obj not in s 非成员测试
      s == t 等价测试
      s != t 不等价测试
      s < t (严格意义上)子集测试
    s.issubset(t) s <= t 子集测试
      s > t (严格意义上)超集测试
    s.issuperset(t) s >= t 超集测试
    s.union(t) s | t 合并操作
    s.intersec-tion(t) s & t 交集操作
    s.difference(t) s – t 差分操作
    s.symmetric_fifference(t) s ^ t 对称差分操作
    s.copy()   赋值操作:返回s的(浅复制)副本
    仅适用于可变集合
    s.update(t) s |= t (Union)修改操作:将t中的成员添加s
    s.intersection_update(t) s &= t 交集修改操作:s中仅包括s和t中共有的成员
    s.difference_update(t) s -= t 差修改操作:s中仅包括属于s但不属于t的成员
    s.symmetric_difference_ update(t) s ^= t 对称差分修改操作:s中包括仅属于s或仅属于t的成员
    s.add(obj)   加操作:将obj添加到s
    s.remove(obj)   删除操作
    s.discard(obj)   丢弃操作:remove()的友好版本,如果s中存在ojb,从s中删除它
    s.pop()   Pop操作:移除并返回s中的任意一个值
    s.clear()   清除操作:移除s中的所有元素
  • 相关阅读:
    Redis string
    java 是 传值还是传址 Pass-by-value or Pass-by-reference
    IDEA 适用技巧
    测试 MD
    pyqt5 学习总结
    win10 安装anaconda 无法使用pip 报错缺少SSL模块
    Hadoop datanode无法启动
    Ansible 安装jdk
    java 安装后 不能 java javac 说找不到命令 -bash: javac: command not found
    如何去掉MapReduce输出的默认分隔符
  • 原文地址:https://www.cnblogs.com/itfat/p/7392115.html
Copyright © 2020-2023  润新知