• Python集合类型的操作与应用


    Python集合类型的操作与应用

    一、Python集合类型

    Python中的集合类型是一个包含0个或多个数据项的无序的不重复的数据组合,其中,元素类型只能是固定数据类型,如整数、浮点数、字符串、元组等,相反,如列表、字典和集合类型本身都是可变数据类型,因此不能作为集合元素使用。

     

    1.无序性

    集合是无序组合,没有索引和位置的概念,不能分片,集合中的元素可以动态增加或删除。集合用大括号{}”表示。

    s={1,2,3,'a','b',(5,'c')}
    
    print(s)

    由上例可知,集合元素打印后的顺序和定义顺序可以不同。

     

    2.不重复性

    集合元素是独一无二的,使用集合类型可以过滤掉重复元素。set(x)函数用于生成集合,输入任意组合数据类型的参数,返回一个无序不重复的集合。

    s=set('omg')
    
    print(s)

    s=set(('human','animal','water','oil'))
    
    print(s)

    二、集合类型的关系操作

     

    1.S-TS.difference(T)ST的差集。返回一个新集合,包括在集合S中但不在集合T中的元素。

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S-T)

    或者

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S.difference(T))

     

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(T-S)

    或者

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(T.difference(S))

     

    2.S&TS.intersection(T)ST的交集。返回一个新集合,包括同时在集合S和集合T中的元素。

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S&T)

    或者

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S.intersection(T))

     

     

    3.S|TS.union(T)ST的并集。返回一个新集合,包括集合S和集合T中的所有元素。

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S|T)

    或者

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S.union(T))

     

    4.S^TS.symmetric_difference(T)ST的对等差集,包括集合S和集合T中的元素,但不包括同时在其中的元素。

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S^T)

    或者

    S={1,2,3,4}
    
    T={2,3,4,5}
    
    print(S.symmetric_difference(T))

     

     

    5.S<=TS.issubset(T):如果ST相同或ST的子集,返回True,否则返回False,可以用S<T判断S是否是T的真子集。

    S={1,2,3}
    
    T={1,2,3,4,5}
    
    print(S<=T)

    或者

    S={1,2,3}
    
    T={1,2,3,4,5}
    
    print(S.issubset(T))

     

     

    6.S>=TS.issuperset(T):如果ST相同或ST的父集,返回True,否则返回False,可以用S>T判断S是否是T的真父集。

    S={1,2,3}
    
    T={1,2,3,4,5}
    
    print(S>=T)

    或者

    S={1,2,3}
    
    T={1,2,3,4,5}
    
    print(S.issuperset(T))

     

     

    三、集合类型的操作函数或方法

    1.S.add(x):如果数据项x不在集合S中,将x增加到s中。

    S=set((1,2,3,'omg','ok','yes'))
    
    S.add(4)
    
    print(S)

    2.S.clear():移除S中的所有数据项。

    S=set((1,2,3,'omg','ok','yes'))
    
    S.clear()
    
    print(S)

    3.S.copy():返回集合S的一个副本。

    S=set((1,2,3,'omg','ok','yes'))
    
    S.copy()
    
    print(S)

     

     

    4.S.pop():随机返回集合中S的一个元素,如果S为空,产生KeyError异常。

    S=set((1,2,3,'omg','ok','yes'))
    
    T=S.pop()
    
    print(T)

    #打印除被pop出的元素以外的所有元素的集合
    
    S=set((1,2,3,'omg','ok','yes'))
    
    S.pop()
    
    print(S)

    #如果S为空,产生KeyError异常
    
    S=set(())
    
    T=S.pop()
    
    print(T)

    5.S.discard(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,不报错。

    S=set((1,2,3,'omg','ok','yes'))
    
    S.discard('omg')
    
    print(S)

    #如果x不在集合S中,不报错
    
    S=set((1,2,3,'omg','ok','yes'))
    
    S.discard('python')
    
    print(S)

     

     

    6.S.remove(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,产生KeyError异常。

    S=set((1,2,3,'omg','ok','yes'))
    
    S.remove('omg')
    
    print(S)

    #如果x不在集合S中,产生KeyError异常
    
    S=set((1,2,3,'omg','ok','yes'))
    
    S.remove('python')
    
    print(S)

     

    7.S.isdisjoint(T):如果集合S与集合T没有相同元素,返回True,否则返回False

    S=set((1,2,3,'omg','ok','yes'))
    
    T=set((4,5,6,'do','true'))
    
    print(S.isdisjoint(T))

     

    S=set((1,2,3,'omg','ok','yes'))
    
    T=set((1,2,5,6,'do','ok','true'))
    
    print(S.isdisjoint(T))

    8.len(S):返回集合S的元素个数。

    S=set((1,2,3,'omg','ok','yes'))
    
    print(len(S))

    9.x in S:如果x是集合S的元素,返回True,否则返回False

    S=set((1,2,3,'omg','ok','yes'))
    
    print(3 in S)

     

    S=set((1,2,3,'omg','ok','yes'))
    
    print('python' in S)

     

     

    10.x not in S:如果x不是集合S的元素,返回True,否则返回False

    S=set((1,2,3,'omg','ok','yes'))
    
    print(3 not in S)

    S=set((1,2,3,'omg','ok','yes'))
    
    print('python' not in S)

    集合类型主要用于成员关系测试、元素去重和删除数据项。

    1.成员关系测试

    S={1,2,3,'omg','ok','yes'}
    
    T='omg' in S
    
    print(T)

    2.元素去重

    S={1,2,3,'omg','ok','yes',2,'omg'}
    
    T=set(S)
    
    print(T)

     

     

    3.删除数据项

    #去重同时删除数据项
    
    S={1,2,3,'omg','ok','yes',2,'omg'}
    
    T=set(S)
    
    P=tuple(T-{'ok'})
    
    print(P)

     

  • 相关阅读:
    C# 图形普通处理,resize ,水印..
    图像处理 形态学 (腐蚀 膨胀 开闭运算 连通分量....)
    获取usb设备父系或子代
    aforge通过角点匹配图片相似度
    CentOS 手动增加、删除swap区
    Zabbix 中文使用手册
    CentOS7下Firewall防火墙配置用法详解
    CentOS7安装Zabbix
    宅男也可变形男-我是如何在11个月零27天减掉80斤的
    CentOS环境下使用GIT基于Nginx的私服搭建全过程
  • 原文地址:https://www.cnblogs.com/BIXIABUMO/p/11710923.html
Copyright © 2020-2023  润新知