集合的基本操作
1 #小知识点:返回对象的内存地址 2 i,j = 1,2 3 print(id(i),id(j)) 4 #集合的基本操作, 5 #相当于没有键值对的字典,里面的元素是无序且不重复的 6 #一般写法 7 s = set({1,2,"xiaohei"}) 8 s0 = set([1,2,3,4,4,3]) #通常用于列表去重 9 s1 = {1,2,"xiaobai"} 10 print(s,s1,s0) 11 #增 12 s.add('Hubei')#若无直接加在末尾 13 print(s) 14 s.update('abc') #迭代的增加 15 print(s) 16 17 #删 18 #print(s.pop()) #随机删除,返回值是删除的值 19 s.remove('a') #按元素删除,无返回值 若无该元素报错 20 #s.clear() #清空集合 21 #del s #删除整个集合 22 23 #改 24 #因为集合的元素是无序的,没法进行更改 25 26 #查 27 for i in s: 28 print(i) 29 print(s) 30 31 #交集 32 print(s & s1) 33 print(s.intersection(s1)) #写法不一样,效果一样,求交集 34 35 #并集 36 print(s | s1) 37 print(s.union(s1)) #写法不一样,效果一样,求并集 38 39 #差集 40 print(s - s1) 41 print(s.difference(s1)) #写法不一样,效果一样,求差集--属于s单不属于s1的元素 42 43 #反交集 44 print(s ^ s1) #除开交集之后的并集 45 46 #去重 47 li = [1,1,2,3,4,1,2,3,7,5,3,'123'] 48 s2 = set(li) 49 print(s2) 50 li = list(s2) 51 print(li)
输出结果:
1 1361600672 1361600704 2 {1, 2, 'xiaohei'} {1, 2, 'xiaobai'} {1, 2, 3, 4} 3 {'Hubei', 1, 2, 'xiaohei'} 4 {'Hubei', 1, 2, 'b', 'c', 'a', 'xiaohei'} 5 Hubei 6 1 7 2 8 b 9 c 10 xiaohei 11 {'Hubei', 1, 2, 'b', 'c', 'xiaohei'} 12 {1, 2} 13 {1, 2} 14 {'Hubei', 1, 2, 'b', 'c', 'xiaobai', 'xiaohei'} 15 {'Hubei', 1, 2, 'b', 'c', 'xiaobai', 'xiaohei'} 16 {'Hubei', 'b', 'xiaohei', 'c'} 17 {'Hubei', 'b', 'xiaohei', 'c'} 18 {'Hubei', 'b', 'c', 'xiaobai', 'xiaohei'} 19 {1, 2, 3, 4, 5, 7, '123'} 20 [1, 2, 3, 4, 5, 7, '123']