zoukankan      html  css  js  c++  java
  • 集合(set)

     定义:1.不同元素组成(指不可重复,可以用 此性质来去重,但是顺序不可能恢复原样)

        

    s = set(li)
    
    a = set(['h','e','e'])
    print(a)


    #输出结果
    {'h', 'e'}

        2.集合是无序的

        3.存放的都是不可变元素 (也就是说列表,和字典不可以作为元素存放在集合里)

       4.集合也可以定义不可变的(s = format((1,2,3,4,5)))

      在集合里可以增加,删除,不可以修改

    定义方法

    s = {1, 2, 3, 4}
    a = set("hello")
    print(a)
    #输出结果
    ('h','e','l','o')
    • 集合的方法

    1. 添加(add()方法一次只能添加一个值,用update()来可以一次添加多个,update()是重新更新集合的意思

    • add()
    a = set(['h','e','l'])
    a.add('b') 
    a.add(3)
    
    print(a)
    
    #结果
    {3, 'b', 'e', 'l', 'h'}
    • update()
    a = set(['h','e','l'])
    a.update('sa','b')        #update会将后边的以迭代的方式取出来添加到集合里
    print(a)
    li = [1,2,3,4,5]
    a.update(li)  #后边可以是列表元组
    print(a)
    #结果 
    {'l', 'h', 's', 'b', 'e', 'a'}
    {'h', 1, 2, 3, 4, 'a', 5, 'l', 'b', 's', 'e'}

      2.清空 clear()

    a = {1,2,3,4,5,6}
    a.clear()
    print(a)
    
    #结果
    set()

      3.拷贝copy()

      4.删除 pop(),remove(),discard()

        

    a = {1,2,3,4,5,6}
    b = a.pop()        #随机从集合里删除一个值 但是可以得到删除的值
    a.remove(4)# 指定删除某只但是如果删除的值不存在会报错
    a.discard(5)# 如果删除的不存在并不会报错
    print(a)
    
    
    #结果
    {2, 3, 6}
    • 关系测试

      1.求两个集合的交集

      

    l1 = {1, 2, 3, 4, 5, 6}
    l2 = {1, 2, 3, 7, 8, 9}
    
    print(l1.intersection(l2)) #相当于l1 & l2
    
    
    #结果
    {1, 2, 3}

      2.并集

    l1 = {1, 2, 3, 4, 5, 6}
    l2 = {1, 2, 3, 7, 8, 9}
    
    print(l1.union(l2)) #相当于l1 | l2
    
    #结果
    {1, 2, 3, 4, 5, 6, 7, 8, 9}

      3.差集

    l1 = {1, 2, 3, 4, 5, 6}
    l2 = {1, 2, 3, 7, 8, 9}
    
    print(l1.difference(l2)) # 相当于 l1 - l2
    
    
    #结果
    {4, 5, 6}

      4.交叉补集

    l1 = {1, 2, 3, 4, 5, 6}
    l2 = {1, 2, 3, 7, 8, 9}
    
    print(l1.symmetric_difference(l2)) #相当于 l1 ^ l2  并集减去两个相交的
    
    
    #结果
    {4, 5, 6, 7, 8, 9}

      5....._uodate()这是指求完之后在再更新到前面的

    l1 = {1, 2, 3, 4, 5, 6}
    l2 = {1, 2, 3, 7, 8, 9}
    l1.difference_update(l2)#相当于 l1 = l1 - l2
    print(l1)
    
    
    #结果
    {4, 5, 6}
    • 集合也可以定义不可变的

     

  • 相关阅读:
    更改开机运行级别
    三个路由的路由表信息
    网络
    网卡配置文件与网络命令显示不一致
    使CentOS7恢复网卡传统命名
    删除CentOS7的虚拟网卡
    将克隆的eth3和eth4改为eth0和eth1
    单臂路由--1个物理网卡绑定多个IP地址
    洛谷P1098 字符串的展开
    洛谷P1086 花生采摘
  • 原文地址:https://www.cnblogs.com/ShanCe/p/9310960.html
Copyright © 2011-2022 走看看