python set
set
set 是一个无序并不重复的元素的集合,每一个值都是唯一的不重复的。
速度快,解决重复问题
In [1]: s1=set()
In [2]: s1.add("a")
In [4]: print s1
set(['a'])
In [5]: s1.add("a")
In [6]: print s1
set(['a'])
In [7]:
s2= set(["alex","eric","tony","alex"])
print s2 #set(['tony', 'alex', 'eric'])
s3=s2.difference(["alex","eric"])
print s2
print s3 #set(['tony'])
差集
difference 俩个集合比较,找出不同的返回一个新的集合
difference_update 删除传来的元素,留下不同的元素
,clean,
取交集,创建一个新的
intersection
取交集,修改原来的集合
intersection_update
如果没有交集,返回true
isdisjoint
是否是子集
issubset
是否是父集
issuperset
移除元素
discard
remove 的同时获取这个值,自己取
pop
移除,要指定一个
remove
计算两个集合的差集,改变原来的
symmetric_difference_update
对称差
symmetric_differenve
并集
union
更新
update
#http://www.cnblogs.com/linhaifeng/articles/7133357.html # 集合 # 不能重复的元素出现的特殊列表, # 访问速度快,解决重复问题,爬虫 # 去重,关系运算 # 集合 元素不可变,没有顺序的 # 列表 转换成集合 l=['a','b',1,'a','a'] set(l) # 集合转列表 l_new=list() s=set() # 去重 l1=[] s=set() for i in l: if i not in s: s.add(i) l1.append(i) print(l1) s2={1,2,'a','b',3,4} # 以逗号分开 # 成员运算 in ,not in # 长度 len() # | 并集 s1={1,2,'d','f'} print(s1|s2) # - 差集 # print(s1-s2) # & 交集 # 同时同存两个集合的元素 print(s1&s2) # ^ 对称交集 # 减去交集 的部分 print(s1^s2) """ 集合之间包含之间关系 == > >= < <= """ s2= set(["alex","eric","tony","alex"]) #{'alex', 'eric', 'tony'} print (s2) #set(['tony', 'alex', 'eric']) s3=s2.difference(["alex","eric"]) # 没有改变值钱的集合,把不同的值 生成新的集合 print ("s2:",s2) print ("s3",s3) #set(['tony']) # s3.clear() # 清空 # s3.copy() #钱copy # s3.difference() # s3.difference_update() 把传来的值从集合里面移除 s4 = s2.difference_update(["alex","eric"]) #传来的元素 print("s4",s4) # 不会生成新的集合 print("s2",s2) # 'tony' # # s2.difference() # 取差集,并创建一个新的集合 # s2.difference_update() # 取差集,不会生成新的集合,修改原来的集合 # s2.intersection() # 取交集,并创建一个新的集合 # s2.intersection_update() # #取交集,不会生成新的集合,修改原来的集合 # s2.symmetric_difference() # 取对称差集,并创建一个新的集合 # s2.symmetric_difference_update() # #取对称差集,不会生成新的集合,修改原来的集合 # # s2.isdisjoint() # 如果没有交集,返回1 # s2.issubset() # 是否是子集 # s2.issuperset() # 是否是父集 # s2.pop() # 随机 (没有索引)移除元素的同时得到这个值, #s2.add() # 添加元素,没有顺序 #s2.discard() # 删除元素,没有的话不会报错,没有返回值 # s2.remove() # 只是移除元素,指定值,没有返回值,没有的话就报错 # s2.union() # 并集 # s2.update()# 更新数据 # 原来没有 》 新加入 # 原来有 》 更新 # 原来有 》 新数据没有 原来的删除 # 差集 s1 = set([11,22,33,44]) s2 = set([22,55]) print(s1.difference(s2)) #{33, 11, 44} 只是拿掉s1 里面的s2 有的元素 print(s1.symmetric_difference(s2)) # {33, 11, 44, 55} # 所有不一样的元素 pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} print(pythons.intersection(linuxs)) # 交集,不改变原来的集合 print(pythons.union(linuxs)) #两个集合的并集/和集 print(pythons.difference(linuxs)) #集合的差集 print(pythons.symmetric_difference(linuxs)) #求出没有同时这两门课程的学员名字集合,对称交集 print(pythons | linuxs) # 和集/并集 print(pythons - linuxs) # 差集 #{'egon', 'alex', 'biubiu', 'yuanhao'} print(pythons & linuxs) # 交集 #{'wupeiqi', 'gangdan'} print(pythons ^ linuxs) # 对称差集 #{'egon', 'alex', 'biubiu', 'oldboy', 'yuanhao'}

浙公网安备 33010602011771号