标签:
set集合的特点是无序、不重复序列
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
a.s1 = {11,22}b.s2 = set()c.s3 = set([11,22,33,44])s = set() #创建空集合li = [11,22,11,22]s2 = set(li)print(s2){11, 22}se = {"123","456"}li = [ ]list((11,22,33,44))原理:当执行list()时,内部会调用list __init__,内部执行for循环(11,22,33,44) [11,22,33,44]#只要类()这样的形式,就会去调用__init__的方法。 |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
s = set()s.add(123) #添加元素s.add(123)s.add(123)print(s) s.clear() #清空内容s.copy() #浅拷贝s1 = {11,22,33}s2 = {22,33,44}s3 = s1.difference(s2) #a中存在,b中不存在的 s1中存在,s2中不存在s4 = s2.difference(s1) #s2中存在,s1中不存在# s3 = s1.symmetric_difference(s2) #a中存在b中不存在,b中存在a中不存在的拿出来。# print(s3)# s1.difference_update(s2) #把a(s1)中存在,b(s2)中不存在的值更新到a中。如果以后还会用到s1,就不要用此方法,如果确定以后不会再用# s1了就可以直接用这个方法。这样的好处是减少变量的声明。# print(s1)# s1.discard(11) #移除指定元素,如果元素不存在则不报错# s1.remove(1111) #移除指定元素,如果元素不存在则报错# s1.pop() #随机移除一个s1中的元素,因为集合是无序的,所以移除元素是不确定的。移除的# 时候会返回移除的元素的值。# pop方法演示:s1 = {11,22,33}ret = s1.pop()print(ret)33# s1 = {11,22,33}# s2 = {22,33,44}# s3 = s1.intersection(s2) #取s1和s2的交集,就是两个集合都有的元素# print(s3)# {33, 22}# s1.intersection_update(s2) #同样与difference_update类似,把两个集合的交集元素更新到s1中# print(s1)# s3 = s1.union(s2) #把两个集合合起来,去并集。如s1和s2,结果就是11,22,33,44# print(s3)# {33, 22, 11, 44}s1 = {11,22,33}s1.update([55,66,777]) #接收一个可迭代的对象,内部会自己去循环这个对象,然后把元素# 更新到集合中。相当于批量添加print(s1){33, 66, 777, 11, 22, 55}s1.update("abcdefg") #字符串也是可迭代的,会把每个字符分开,更新到集合中print(s1) |
|
1
2
3
4
5
6
7
8
9
10
11
|
old_dict = { "#1": 8, "#2": 4, "#4": 2,}new_dict = { "#1": 4, "#2": 4, "#3": 2,} |
|
1
2
3
|
del_set = set(old_dict).difference(set(new_dict)) #取出需要删除的槽位{‘#4‘}add_set = set(new_dict).difference(set(old_dict)) #取出需要添加的槽位{‘#3‘}update_set = set(new_dict).intersection(set(old_dict)) #取出需要更新的槽位{‘#2‘, ‘#1‘} |
标签:
原文地址:http://www.cnblogs.com/yangruizeng/p/5535962.html