zoukankan      html  css  js  c++  java
  • python基础一数据类型之集合

    摘要:

    python基础一中介绍数据类型的时候有集合,所以这篇主要讲集合。

    1,集合的定义

    2,集合的功能

    3,集合的方法

    1,集合的定义

    list1 = [1,4,5,7,3,6,7,9]
    set1 = set(list1)
    
    set2 = {1,4,5,7,3,6,7,9}
    

      

    2,集合的功能

    2.1 去重

    list1 = [1,4,5,7,3,6,7,9]
    set1 = set(list1)
       
                运行结果:{1, 3, 4, 5, 6, 7, 9}  
    
    可以发现集合具有去重的功能。
    

      

    2.2 关系测试

    关系测试的话主要涉及到都是集合的方法,比如子集、交集等,详见集合的方法。

    3,集合的方法

    3.1,交集

    set1 = {1, 3, 4, 5, 6, 7, 9}
    
    set2= set([2,6,0,7,66])
    
    print(set1.intersection(set2)) 
    或者 
    print(set1&set2)
    
          运行结果:{6, 7}
    

      

     

    3.2,并集

    set1 = {1, 3, 4, 5, 6, 7, 9}
    
    set2= set([2,6,0,7,66])
    print(set1.union(set2)) 
    或者 print(set1|set2)
          
          运行结果:{0, 1, 2, 3, 4, 5, 6, 7, 66, 9}

      

    3.3,差集(在set1里面有的,set2里面没有的,同理也可以set2里面有的,set1里面没有的)

    set1 = {1, 3, 4, 5, 6, 7, 9}
    
    set2= set([2,6,0,7,66])
    print(set1.difference(set2))        
    print(set2.difference(set1))
    print(set1-set2)
    print(set2-set1)
    

      

    3.4,子集(以bool值返回)

    set1 = {1, 3, 4, 5, 6, 7, 9}
    
    set2= set([2,6,0,7,66])
    
    print(set1.issubset(set2))
    

      

    3.5,父集

    set1 = {1, 3, 4, 5, 6, 7, 9}
    
    set2= set([2,6,0,7,66])
    
    print(set1.issuperset(set2))
    

      

    3.6,对称差集(将对方都没有的都取出来,或者说是去取反向差集)

    set1 = {1, 3, 4, 5, 6, 7, 9}
    
    set2= set([2,6,0,7,66])
    print (set1.symmetric_difference(set2))
    
    print(set1^set2)
    

    3.7,交集(以bool值返回)

    set1 = set([1,2,3])
    set2 = set([4,5,7])
    print (set1.isdisjoint(set2))
    

      

    3.8,集合其他方法

    1,,集合添加元素

    set1 = set([1,2,3])
    set1.add(4)
    print(set1)
    set1.update([5,6,7])
    print(set1)
    

      

    2,删除集合的元素,如果不存在就会报错。

    set1.remove(7)
    print(set1)
    

      

    3,随机删除元素

    print (set1.pop())
    

      

    4,删除元素,如果删除的元素不存在不会报错。

    set1 = set([1,2,3,'a'])
    set1.discard('b')
    print(set1)
    

      

    
    
    
  • 相关阅读:
    Linux基础命令题(ps/ls + grep)
    Operator Overloading in C++
    C++中class和struct的区别
    poj1110double vision搜索
    poj1321棋盘递归搜索
    vim窗口分割/切换
    xclipmore about copy&paste命令行粘贴
    [转载]怎样花两年时间去面试一个人
    最优二叉查找树optimalBSTC++实现
    vim复制粘贴——系统剪贴板
  • 原文地址:https://www.cnblogs.com/lin1/p/8231732.html
Copyright © 2011-2022 走看看