zoukankan      html  css  js  c++  java
  • Python:基础数据类型--集合

    基础数据类型--集合

    集合是一组无序数据组合,集合的元素是唯一的。一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组)。

    s={"oldboy","alex","jinxin"}
    print(s,type(s))

    {'jinxin', 'alex', 'oldboy'} <class 'set'>

    主要的作用为:

    1. 去重:把一个列表变成集合,就自动去重。
    2. 关系测试:测试两组数据之前的交集、差集、并集、对称差集等关系。

    集合:增

    s={"oldboy","alex","jinxin"}
    print(s,type(s))
    
    s.add("laowan")         #add()向集合中添加一个元素
    print(s)

     {'oldboy', 'jinxin', 'alex'} <class 'set'>
     {'oldboy', 'jinxin', 'laowan', 'alex'}

    s={"oldboy","alex","jinxin"}
    s.update(["bobo","gugu","xiaoxiao"])  #update()向集合中添加多个元素
    print(s)
    
    {'jinxin', 'gugu', 'alex', 'oldboy', 'xiaoxiao', 'bobo'}

    集合:删

    pop()  随机删除集合中的一个元素,并返回删除的元素,并返回被删除的元素。

    s={"oldboy","alex","jinxin"}
    result = s.pop()
    print(s)
    print(result)
    
    {'oldboy', 'jinxin'}
    alex

    remove()  删除集合中指定的元素  删除不存在的元素会报错。

    s={"oldboy","alex","jinxin"}
    s.remove('zy')
    print(boys)
    
    KeyError: 'zy'

    discard()  删除集合中指定的元素  删除不存在的元素不报错。

    s={"oldboy","alex","jinxin"}
    s.discard('zy1')
    print(s)
    
    {'jinxin', 'oldboy', 'alex'}

    clear()  清空集合。

    s={"oldboy","alex","jinxin"}
    s.clear()
    print(s)
    
    set()

    集合:关系测试

    交集:

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    
    # 交集 & intersection
    print(set1 & set2)
    print(set1.intersection(set2))
    
    {4, 5}
    {4, 5}

    并集:

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    #并集 | union
    print(set1 | set2)
    print(set1.union(set2))
    
    {1, 2, 3, 4, 5, 6, 7, 8}
    {1, 2, 3, 4, 5, 6, 7, 8}

    差集:不同的位置,等到的结果不同

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    # 差集 - difference
    print(set1 - set2)
    print(set1.difference(set2))
    print(set2 - set1)
    
    {1, 2, 3}
    {1, 2, 3}
    {8, 6, 7}

    对称差集: 

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    print(set1 ^ set2)
    print(set1.symmetric_difference(set2))
    
    {1, 2, 3, 6, 7, 8}
    {1, 2, 3, 6, 7, 8}

    子集:

    set1 = {1, 2, 3}
    set2 = {1, 2, 3, 4, 5, 6}
    print(set1 < set2)
    print(set1.issubset(set2))
    
    True
    True

    超集:超集定义:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集。

    set1 = {1, 2, 3}
    set2 = {1, 2, 3, 4, 5, 6}
    print(set2 > set1)
    print(set2.issuperset(set1))
    
    True
    True

    不可变集合:

    set1 = {1, 2, 3}
    set1 = frozenset(set1)
    print(set1,type(set1))
    
    frozenset({1, 2, 3}) <class 'frozenset'>
  • 相关阅读:
    mybatis的xml文件中的CDATA的使用
    使用jedis执行lua脚本
    连接池中的maxIdle,MaxActive,maxWait等参数详解
    Unity3D脚本中文系列教程(十六)
    Unity3D脚本中文系列教程(十五)
    Unity3D脚本中文系列教程(十四)
    Unity3D脚本中文系列教程(十三)
    Unity3D脚本中文系列教程(十二)
    Unity3D脚本中文系列教程(十一)
    Unity3D脚本中文系列教程(十)
  • 原文地址:https://www.cnblogs.com/bailo/p/9070251.html
Copyright © 2011-2022 走看看