zoukankan      html  css  js  c++  java
  • Python Set集合操作

    #-*- coding:UTF-8 -*-
    #set  和dict类似,也是一组key的组合,但不存储value,key不能重复,
    #要创建一个set,需要提供一个list作为输入集合
    s=set([1,2,3])
    print  s
    #set([1, 2, 3])
    
    s=set([1,1,2,2,3,3])
    print s 
    #set([1, 2, 3])   重复元素自动被过滤
    
    #通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
    s.add(4)
    print s
    #set([1, 2, 3, 4])
    
    s.add(4)
    print s
    #同样输出set([1, 2, 3, 4])
    
    #通过remove(key) 删除元素
    s.remove(4)
    print  s
    #set([1, 2, 3])
    
    #set 可以看成数学意义上的无序和无重复元素的集合,因此两个set可以做数学意义上的交集和并集操作
    s1=set([1,2,3])
    s2=set([2,3,4])
    print s1&s2
    #set([2, 3])
    print s1|s2
    #set([1, 2, 3, 4])
    
    a=set('abrcd')
    b=set('alczm')
    #a中存在b中不存在
    print  a-b  
    #set(['r', 'b', 'd'])
    
    #letters in a or b but not both
    print  a^b
    #set(['b', 'd', 'm', 'l', 'r', 'z'])
    
    a={x  for  x  in  'abracadabra' if  x  not  in  'abc'}
    print  a 
    #set(['r', 'd'])
    

     set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
    #把list放入set发现报错:
    a=set([1,2,3,[1,2,3]])
    print  a
    #报错TypeError: unhashable type: 'list'

  • 相关阅读:
    常见的位运算技巧总结(膜wys)
    BZOJ1878:[SDOI2009]HH的项链
    BZOJ4300:绝世好题
    BZOJ1298:[SCOI2009]骰子的学问
    BZOJ2748:[HAOI2012]音量调节
    BZOJ1951:[SDOI2010]古代猪文
    BZOJ1002:[FJOI2007]轮状病毒
    BZOJ1081:[SCOI2005]超级格雷码
    BZOJ2595:[WC2008]游览计划
    BZOJ1190:[HNOI2007]梦幻岛宝石
  • 原文地址:https://www.cnblogs.com/zwgblog/p/7170907.html
Copyright © 2011-2022 走看看