zoukankan      html  css  js  c++  java
  • python基础之集合

    一、python中集合的定义

    由不同元素的集合,集合是一组无序排列的可Hash值,可以作为字典的key特性,集合中的元素是不可变类型。***注意三点(1.不同元素的集合,2.无序排列,3.集合中的元素是不可变类型)

    二、集合的创建

    s = set()
    s = {1,2,3,4,5}

    *注:创建空集合时,只能用set(),如果用第二种方法s={},创建的实际上是一个空字典。
    s = {}
    print(type(s))
    <class 'dict'>

    三、集合的功能

    • 基本功能

    添加(add, update)

    s={1,2,3,5,6}
    s.add(4)              # 只能更新一个值,加的值不能重复
    print(s)
    s.update('4','7')   # 可更新多个值
    print(s)
    执行结果如下:
    {1,2,3,4,5,6}
    {1,2,3,5,6,'4','7'}

    清空(clear)

    s={1,2,3,5,6}
    s.clear()
    print(s)
    执行结果如下:
    set()

    复制

    s={1,2,3,5,6}
    s1=s.copy()
    print(s1)

    执行结果如下:

    s1={1,2,3,5,6}

     删除(pop, remove, discard)

    s={4,10,5,7,8,4,9,2,5,‘s’}

    s.pop() # 因为集合是无序的,所以随机删除的
    print(s)

    执行结果如下:

    s={4, 5, 7, 8, 9, 10, 's'}

     

    s.remove(7)  #删除指定元素3,元素不存在是报错

    执行结果如下:

     s={4,10,5,8,4,9,2,5,‘s’}

    s.discard('hello')  #元素不存在时不报错

    • 特有功能

    交集(intersection 或' &')

    p_s=['lcg','lzq','czd','cyz'] 
    l_s=['cyz','zwx','wxj','czd']
    print(p_s.intersection(l_s))  #求交集 
    print(p_s & l_s)

    执行结果如下:
    {'cyz', 'czd'}
    {'cyz', 'czd'}

    并集(union  或 ' |')

    p_s=['lcg','lzq','czd','cyz']
    l_s=['cyz','zwx','wxj','czd']

    print(p_s.union(l_s))    #求并集

    print(p_s|l_s)

    执行结果如下:

    {'lzq', 'lcg', 'zwx', 'wxj', 'czd', 'cyz'}

    {'lzq', 'lcg', 'zwx', 'wxj', 'czd', 'cyz'}

    差集(difference 或  '-')

    p_s=['lcg','lzq','czd','cyz']
    l_s=['cyz','zwx','wxj','czd']

    print('差集',p_s.difference(l_s))     # 求差集,p_s减去l_s

    print('差集',p_s-l_s)

    执行结果如下:

    差集 {'lzq', 'lcg'}

    差集 {'lzq', 'lcg'}

    交叉补集(symmetric.difference 或 '^')

      p_s=['lcg','lzq','czd','cyz']
      l_s=['cyz','zwx','wxj','czd']
         

    print(p_s.symmetric_difference(l_s))      #交叉补集

    print('交叉补集',p_s^l_s)                        #两个集合合到一起减去他们的交集

    执行结果如下:

    {'zwx', 'wxj', 'lzq', 'lcg'}

    交叉补集 {'zwx', 'wxj', 'lzq', 'lcg'}

    判断是否为有效集(isdisjoint)

           s.isdisjoint:有交集为False,无交集为True    (其中s为集合)

    子集和父集(issubset   和  issuperset)

           s1.issubset(s2):s2是s1的子集

           s2.issuperset(s1): s2是s1的父集

  • 相关阅读:
    redis基本数据结构-集合set
    redis基本数据结构-列表
    redis基本数据结构-散列
    redis基本数据结构-字符串
    redis基础
    关于HTTP调用WCF传递DataTable参数的处理
    解决WCF跨域问题,及DataTable参数问题
    让WCF支持Http调用
    分页方法,始终只生成指定数量的页码
    CVE-2021-1675漏洞复现
  • 原文地址:https://www.cnblogs.com/changzhendong/p/11151852.html
Copyright © 2011-2022 走看看