首页 > 编程语言 > 详细

python之集合

时间:2016-05-23 00:24:58      阅读:202      评论:0      收藏:0      [点我收藏+]

 

 集合的特性:无序性,唯一性,可嵌套性

1 #创建集合方式
2 s1={11,22}# 直接创建
3 s2=set()#创建空集合
4 s3=set([111,222,333])#转换为集合
1 #集合的方法
2 s1={11,22,33}
3 s2={22,33,44}
4 print(s1.difference(s2))#s1中存在s2中不存在
#输出   {11}
1 s1={11,22,33}
2 s2={22,33,44}
3 s3=s1.symmetric_difference(s2)
4 print(s3)#将s1与s2中不同的放一起组成新集合
5 #显示{11, 44}
s1={11,22,33}
s2={22,33,44}
#update方法,s1中存在s2中不存在的值赋给s1
s1.difference_update(s2)#覆盖s1
print(s1)
#显示:{11}
s1={11,22,33}
s2={22,33,44}
# #删除元素
s2.discard(1111)#需要加参数,没有元素不报错
s1.remove(1111)#需要加参数,没有元素报错
res = s1.pop()#随机移除元素,不加参数,接受返回值(删除的元素
s1={11,22,33}
s2={22,33,44}
#求交集
s4=s1.intersection(s2)#求交集赋值给s4
s1.intersection_update(s2)#求交集覆盖s1
print(s4)
print(s1)
#显示{33, 22} {33, 22}
 1 s1={11,22,33}
 2 s2={22,33,44}
 3 s1.isdisjoint(s2)#判断s1是否包含s2 返回True or False
 4 
 5 #联合,并集
 6 s5=s1.union(s2)
 7 #显示{33, 22, 11, 44}
 8 
 9 #给集合添加一个元素
10 s1.add(111)#增加一个元素
11 print(s1)
12 #显示{33, 11, 22, 111}
13 
14 #给集合添加一组元素
15 li=[111,222,333]
16 s1.update(li)#添加一组元素,参数为可迭代的对象
17 print(s1)
18 #显示{33, 11, 333, 111, 22, 222}
 1 #集合的综合使用,根据new_dict,更新old_dict
 2 old_dict={
 3     #1:8,
 4     #2:4,
 5     #4:2,
 6 }
 7 new_dict={
 8     #1:4,
 9     #2:4,
10     #3:2,
11 }
12 #将old_dict的key放入一个集合
13 s1=set(old_dict.keys())
14 #将new_dict的key放入一个集合
15 s2=set(new_dict.keys())
16 #找出old中存在,new中不存在的赋给del_old(需要删除的key)
17 del_old=s1.difference(s2)
18 print(del_old)
19 #找出old中不存在,new中存在的值赋给add_old
20 add_old=s2.difference(s1)
21 print(add_old)
22 
23 #找出两个字典中相同的keys,则是需要更新
24 update_set=s1.intersection(s2)
25 
26 #将要删除的集合元素转为列表
27 del_old=list(del_old)
28 
29 #删除字典中的元素
30 del old_dict[str(del_old[0])]
31 
32 #将需要添加的集合转为列表
33 add_old=list(add_old)
34 
35 #添加新元素到old_dict中
36 old_dict[str(add_old[0])]=new_dict[str(add_old[0])]
37 
38 #轮询更新相同key不同vlaues的元素
39 for i in update_set:
40     old_dict[i]=new_dict[i]
41 
42 print(old_dict,new_dict)
43 
44 
45 #显示
46 {#4}
47 {#3}
48 {#1: 4, #3: 2, #2: 4} {#1: 4, #3: 2, #2: 4}

 

python之集合

原文:http://www.cnblogs.com/liguangxu/p/5518211.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!