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}
    • 集合也可以定义不可变的

     

  • 相关阅读:
    168. Excel Sheet Column Title
    171. Excel Sheet Column Number
    264. Ugly Number II java solutions
    152. Maximum Product Subarray java solutions
    309. Best Time to Buy and Sell Stock with Cooldown java solutions
    120. Triangle java solutions
    300. Longest Increasing Subsequence java solutions
    63. Unique Paths II java solutions
    221. Maximal Square java solutions
    279. Perfect Squares java solutions
  • 原文地址:https://www.cnblogs.com/ShanCe/p/9310960.html
Copyright © 2011-2022 走看看