在python中,字典的亲戚就是集合,集合就是无映射关系的字典,花括号并不是字典的特权。如下面程序所示:
1 >>> num = {} 2 >>> type(num) 3 <class 'dict'> 4 >>> num1 = {1,2,3,4,5} 5 >>> type(num1) 6 <class 'set'>
众所周知,集合中的元素互不相同,python中也如此。且输出的数据按一定顺序排列。并且集合不支持索引。如下程序所示:
1 >>> num2 = {1,2,1,3,3,7,8,5,2,9} 2 >>> num2 3 {1, 2, 3, 5, 7, 8, 9} 4 >>> num2[2] 5 Traceback (most recent call last): 6 File "<pyshell#6>", line 1, in <module> 7 num2[2] 8 TypeError: 'set' object does not support indexing
创建集合的方法有2种,一是上述形式,二是内置的函数set()
1 >>> set1 = set([1,2,3,4,5,5,2]) 2 >>> set1 3 {1, 2, 3, 4, 5}
往集合里面添加或者移除元素可用add()函数和remove()函数,如下程序所示:
1 >>> set1 = set([1,2,3,4,5,5,2]) 2 >>> set1 3 {1, 2, 3, 4, 5} 4 >>> set1.add(5) 5 >>> set1 6 {1, 2, 3, 4, 5} 7 >>> set1.add(6) 8 >>> set1 9 {1, 2, 3, 4, 5, 6} 10 >>> set1.remove(4) 11 >>> set1 12 {1, 2, 3, 5, 6}
集合有不可变的集合,里面的元素不可改变。可用内置函数frozenset()函数创建,如下程序所示:
1 >>> set2 = frozenset([1,2,3,4,6]) 2 >>> set2.add(5) 3 Traceback (most recent call last): 4 File "<pyshell#17>", line 1, in <module> 5 set2.add(5) 6 AttributeError: 'frozenset' object has no attribute 'add'
集合类型内建方法总结(引用自‘鱼C工作室’):https://fishc.com.cn/thread-45276-1-1.html