集合
特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引。此外,集合中的元素不能重复。
1 定义 2 3 set() -> new empty set object 4 set(iterable) -> new set object 5 s = {0}
应用:去重
1 >>> lst1 = [1,1,2,2,3,4,2] 2 >>> list(set(lst1)) 3 [1, 2, 3, 4]
常用操作
- 集合支持一系列标准操作,包括并集|、交集&、差集-和对称差集^
- 子集< <=及超集> >=
- 增删,清空操作
具体见如下代码例子
1 >>> lst1 = [1,2] 2 >>> lst2 = [2,3] 3 >>> a = set(lst1) #定义集合 4 >>> b = set(lst2) 5 >>> a,b 6 ({1, 2}, {2, 3}) 7 >>> a|b #取并集 8 {1, 2, 3} 9 >>> a&b #取交集 10 {2} 11 >>> a-b #取差集 12 {1} 13 >>> b-a #取差集 14 {3} 15 >>> list(a) #转换集合为列表,也可转为元组,如 tuple(a)返回 (1,2) 16 [1, 2] 17 >>> a < b #子集判断 18 False 19 >>> c = set([1]) 20 >>> c 21 {1} 22 >>> c < a #子集判断 23 True 24 >>> c <= a #子集判断 25 True 26 >>> d = set([1,2,3]) 27 >>> d > a #超集判断 28 True 29 >>> 30 >>> d >= a #超集判断 31 True 32 >>> a,b 33 ({1, 2}, {2, 3}) 34 >>> a^b # 对称差集 35 {1, 3} 36 >>> c 37 {1} 38 >>> d 39 {1, 2, 3} 40 >>> a^d # 对称差集 41 {3} 42 >>> s = {0} 43 >>> type(s) 44 <class 'set'> 45 >>> 46 >>> print(s, len(s)) #集合长度 47 {0} 1 48 >>> s.add('1') #添加元素 49 >>> s 50 {0, '1'} 51 >>> s.update([2,3]) #添加多个元素 52 >>> s 53 {0, 2, 3, '1'} 54 >>> s.remove(2) #删除指定元素,如没有则报错 55 >>> s 56 {0, 3, '1'} 57 >>> s.pop() #随便删元素(貌似没什么用) 58 0 59 >>> s 60 {3, '1'} 61 >>> s.discard(3) #删除指定元素 62 >>> s 63 {'1'} 64 >>> s.clear() #清空集合 65 >>> s 66 set()