zoukankan      html  css  js  c++  java
  • python-set集合

    简介

    set是一个无序且不重复的元素集合

    s1=set()                   #创建一个空的set集合
    s2=set('python')           #创建一个非空的set集合
    print (type(s1))
    
    -----结果-----
    <type 'set'>
    

    注意:如果想要在set集合中加入多个元素,不可使用set('python','java'),应该用一个列表的形式加入,如:

    s1=set(['java','java','python'])
    print (s1)
    
    -----结果-----
    {'java', 'python'}       #set中把'java'去重
    

    在set这个类中,有以下几种方法:

    一、添加add()

    s1=set()
    s1.add('python')
    print (s1)
    s1.add('python')
    print (s1)
    s1.add('c')
    print (s1)
    
    -----结果----
    {'python'}           
    {'python'}                  #set是一个不重复的集合,第二次添加的时候不会再次插入
    {'c', 'python'}
    

      

    二、清空clear()

    s1=set()
    s1.add('python')
    s1.clear()
    print (s1)
    
    -----结果-----
    set()
    

      

    三、拷贝copy()

    s1=set()
    s1.add('python')
    s2=s1.copy()
    print (s2)
    
    -----结果-----
    {'python'}
    

    四、对比difference()与difference_update

    difference()的作用是把两个set集合进行对比,把对比的结果放入到一个新的集合中,如

    s1=set(['java','python'])
    s2=set(['java','c'])
    s3=s1.difference(s2)
    print(s3)
    
    -----结果-----
    {'python'}
    

    注意:使用difference()时,两个集合比较,只会把前一个集合中存在且后一个集合中不存在的元素放入一个新集合中

    difference_update()简单地说,就是两个集合比较,在第一个集合中,去除两个集合相同的部分。此方法是在第一个集合中操作,不会重新产生一个新的集合

    s1=set(['java','python'])
    s2=set(['java','c'])
    s3=s1.difference_update(s2)
    print (s1)
    print (s3)
    
    -----结果-----
    {'python'}
    None
    

    五、移除discard()、pop()、remove()

    区别:

      discard(x):从集合中删除元素x,如存在,则删除,如不存在,则不做操作

      pop():从集合中删除一个元素,且可把删除的元素重新赋值给一个新变量

      remove(x):从集合中删除元素x,如存在,则删除,如不存在,则报错

    #discard()
    s1=set(['python','java'])
    s1.discard('java')
    print (s1)
    -----结果-----
    {'python'}
    
    
    #pop()
    s1=set(['python','java'])
    s2=s1.pop()
    print (s1)
    print (s2)
    -----结果-----
    {'java'}
    python
    
    
    #remove
    s1=set(['python','java'])
    s1.remove('java')
    print (s1)
    -----结果-----
    {'python'}
    

      

    六、取交集intersection()与intersection_update()

    #intersection()
    s1=set(['java','python'])
    s2=set(['java','c'])
    s3=s1.intersection(s2)
    print (s1)
    print (s2)
    print (s3)
    -----结果-----
    {'python', 'java'}
    {'java', 'c'}
    {'java'}
    
    
    #intersection_update()
    s1=set(['java','python'])
    s2=set(['java','c'])
    s3=s1.intersection_update(s2)
    print (s1)
    print (s2)
    print (s3)
    -----结果-----
    {'java'}
    {'c', 'java'}
    None
    

    intersection()与intersection_update()的区别同样在于是否会生成一个新的集合

    七、判断是否有交集isdisjoint()

    s1=set(['java','python'])
    s2=set(['java','c'])
    print (s1.isdisjoint(s2))           #如果没有交集,会返回True
    
    -----结果-----
    False                   
    

    八、判断是否是子集issubset()

    s1=set(['java','python'])
    s2=set(['java','c'])
    s3=set(['java'])                     #注意此处不能写s3=set('java')
    print (s2.issubset(s1))
    print (s3.issubset(s1))
    
    -----结果-----
    False
    True
    

    九、判断是否是父集issuperset()

    s1=set(['java','python'])
    s2=set(['java','c'])
    s3=set(['java'])
    print (s1.issuperset(s2))
    print (s1.issuperset(s3))
    
    -----结果-----
    False
    True
    

    十、差集ymmetric_difference()与ymmetric_difference_update()

    #symmetric_difference
    s1=set(['python','java'])
    s2=set(['python','c'])
    s3=s1.symmetric_difference(s2)
    print (s1)
    print (s2)
    print (s3)
    -----结果-----
    {'java', 'python'}
    {'c', 'python'}
    {'c', 'java'}
    
    
    #symmetric_difference_update
    s1=set(['python','java'])
    s2=set(['python','c'])
    s3=s1.symmetric_difference_update(s2)
    print (s1)
    print (s2)
    print (s3)
    -----结果-----
    {'java', 'c'}
    {'python', 'c'}
    None
    

    两者的区别还是在是否会生成一个新的集合

    十一、并集union()

    s1=set(['python','java'])
    s2=set(['python','c'])
    s3=s1.union(s2)
    print (s1)
    print (s2)
    print (s3)
    
    -----结果-----
    {'python', 'java'}
    {'python', 'c'}
    {'c', 'python', 'java'}
    

    十二、更新update()

    s1=set(['python','java'])
    s2=set(['python','c'])
    s3=s1.update(s2)
    print (s1)
    print (s2)
    print (s3)
    
    -----结果-----
    {'python', 'java', 'c'}
    {'python', 'c'}
    None
    
  • 相关阅读:
    DetachedCriteria的使用
    Windows 9立即公布了
    加壳学习笔记(三)-简单的脱壳思路&amp;调试思路
    用异或来交换两个变量能提快速度是错误的
    珍爱生命,举手之劳__怎样优雅的叫优步专车
    【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。
    HDU 5311 Hidden String (优美的暴力)
    ChargeSystem——One,Two,Three
    GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0&#39;错误的解决的方法
    java中commons-beanutils的介绍
  • 原文地址:https://www.cnblogs.com/nizhihong/p/6608077.html
Copyright © 2011-2022 走看看