zoukankan      html  css  js  c++  java
  • 4、集合set的功能介绍

    集合是易变(可改变)和无序聚集。集合set支持迭代,很像无值(或仅有键的)字典,用花括号表示{}。
     
    1、集合的创建:
    可以通过调用内建函数set()来创建,及向其传递一个迭代,该迭代的项目成为形成集合的成员。集合也可以由{...}、集合字面值和集合综合表达式语法来创建,尽管set()仍被用于创建空集合({}是空字典),并从存在的对象中构建集合。
    #创建一个空集合
    set()
    #一个四个项目的集合:值为's','p','a','m'(接受任何迭代)
    1 s = set('spam')
    2、差操作:
    新集合包含的项目在s1,不在s2中
    1 s1 = {1,2,3,4}
    2 s2 = {0,1,2,3}
    3 p1 = s1.difference(s2)
    4 print(p1)
    5 >>>
    6 {4}
    3、并操作:新集合包含s1和s2中的项目,不出现重复项
    1 s1 = {1,2,3,4}
    2 s2 = {0,1,2,3}
    3 s3 = s1 | s2
    4 print(s3)
    5 >>>
    6 {0, 1, 2, 3, 4}
    4、交操作:新集合包含s1和s2两者共有的项目
    1 s1 = {1,2,3,4}
    2 s2 = {0,1,2,3}
    3 s3 = s1 & s2
    4 print(s3)
    5 >>>
    6 {1, 2, 3}
    5、添加、修改、删除操作
    s.add(x) , s.remove(x) , s.discard(x) , s.pop() , s.clear()
    添加一个项目;根据值删除一个项目;删除一个存在的项目;删除返回一个随机项目;删除所有项目
    6、复制
    s.copy
    构建s的顶层(表层)复制。该功能与set(s)相同。
    7、子集操作
    1 s1 = {1, 2, 3, 4}
    2 s2 = {1, 2, 3}
    3 i1 = s2.issubset(s1)      #判断s2是否是s1的子集
    4 print(i1)
    5 >>>
    6 True
    8、超子集操作
    1 s1 = {1, 2, 3, 4}
    2 s2 = {1, 2, 3}
    3 i2 = s1.issuperset(s2)      #判断s1是否包含是s2
    4 print(i2)
    5 >>>
    6 True
    9、对称差操作:新集合包含除了s1和s2交集外的元素
    1 s1 = {1, 2, 3, 4}
    2 s2 = {0, 1, 2, 3}
    3 s3 = s1.symmetric_difference(s2)
    4 print(s3)
    5 >>>
    6 {0, 4}
    10、更新:将s2的集合添加到s1中,相当于并操作
    1 s1 = {1, 2, 3, 4}
    2 s2 = {0, 1, 2, 3}
    3 s1.update(s2)
    4 print(s1)
    5 >>>
    6 {0, 1, 2, 3, 4}
  • 相关阅读:
    NOI2004 郁闷的出纳员 [Splay]
    关押罪犯 [二分]
    SCOI2010 传送带 [三分/模拟退火]
    POI2007 MEG-Megalopolis [树状数组]
    食物链 [并查集]
    SDOI2011 染色 [树链剖分]
    国家集训队 数颜色 [莫队]
    JSOI2008 星球大战 [并查集]
    [NOI2002] 银河英雄传说 (带权并查集)
    种树 [堆]
  • 原文地址:https://www.cnblogs.com/wangjunfei/p/7679677.html
Copyright © 2011-2022 走看看