码迷,mamicode.com
首页 > 其他好文 > 详细

day3 集合

时间:2016-08-10 20:56:06      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

集和

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

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

set创建集合

>>> s = set([3,5,9,10])     #创建一个数值集合 
>>> t = set("Hello")    #创建一个唯一字符的集合
>>> s
{9, 10, 3, 5}
>>> t
{e, H, l, o}    #集和自动去重
>>> type(s),type(t)
(<class set>, <class set>)    #集和类型
>>> len(s)    #集和长度
4
>>> s==t
False
>>> s1=s
>>> s1
{9, 10, 3, 5}
>>> s1==s
True

由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。

>>> t
{e, H, l, o}
>>> "e" in t
True
>>> "a" in t
False
>>> "a " not in t
True
>>> for i in t:

    print(i)

    
e
H
l
o

 

可使用以下内建方法来更新:

s.add()
s.update()
s.remove()

注意只有可变集合(set创建的集和,frozense创建的集和是不可变集和)才能更新:

>>> s
{9, 10, 3, 5}
>>> t
{e, H, l, o}
>>> s.add(1)    #添加一个元素
>>> s
{9, 10, 3, 5, 1}
>>> s.update([0,2,4])    #添加多个元素
>>> s
{0, 1, 2, 3, 4, 5, 9, 10}
>>> t.add(python)
>>> t
{e, H, l, python, o}
>>> t.update(python)    #添加一个字符会拆成多个
>>> t
{e, y, n, h, t, p, o, python, H, l}
>>> t.remove(python)    #删除一个元素
>>> t
{e, y, n, h, t, p, o, H, l}

关系

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  # t 和 s的并集  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  # t 和 s的交集 
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  # 求差集(项在s中,但不在t中)
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  # 对称差集(项在t或s中,但不会同时出现在二者中)
返回一个新的 set 包含 s 和 t 中不重复的元素  

 

day3 集合

标签:

原文地址:http://www.cnblogs.com/dcc001/p/5758111.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!