集合的使用

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系
list1=[1,2,5,6]
list1=set[list1] 变成集合
 
list2=set([5,6,86,9,97,65]) 集合
 
list1.intersection(list2) 交集,求共同的值(集合不分前后)
list1 & list2
 
 list1.union(list2) 并集,所有值合并一起,去掉重复的保留一个(集合不分前后)
list1 | list2
 
list1.difference(list2) 差集。list1有的值,list2没有的
list1-list2
 
list1.issubset(list2) 子集,list1的值,都在list2中
list1.issuperset(list2) 父集,list1是父,list2是子。list2的值都在list1父集中
list1.symmetric_difference(list2) 对称差集。两个列表集合中都没有的取出来,放在一起(集合不分前后)
list1 ^ list2
 
list1.isdisjoint(list2) list1与list2没有交集为true,有交集为false
 
list1.add(99) 添加值
list1.update([5,6,8,89]) 多项添加
list1.remove('m') 删除集合中m值.值不存在会报错
list1.pop() 随机删除一个,并打印一次
list1.discard(m) 删除集合中m值.值不存在不会报错,提示none
 
s = set([3,5,9,10])      #创建一个数值集合  
  
t = set("Hello")         #创建一个唯一字符的集合  


a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
  
   
  
基本操作:  
  
t.add('x')            # 添加一项  
  
s.update([10,37,42])  # 在s中添加多项  
  
   
  
使用remove()可以删除一项:  
  
t.remove('H')  
  
  
len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制
View Code

 

posted @ 2017-03-27 11:38  玩蛇者  阅读(164)  评论(0编辑  收藏  举报