python基础之七:set 集合
Posted 四方游览
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础之七:set 集合相关的知识,希望对你有一定的参考价值。
集合(set)是一个无序的不重复元素序列。只可以存储不可变类型数据,即可哈希的数据类型,
如:元组(tuple)、字符(str)、整型(int)、布尔型(bool)
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },
因为 { } 是用来创建一个空字典。
1 set1 = set({1, 2, 3, 4}) 2 set2 = {‘wuhan‘, ‘taibei‘, ‘soul‘} 3 print(type(set1))
相关操作
1 ‘‘‘增‘‘‘ 2 set1.add(4) # 无序插入,如果插入集合中有的元素,会去重!因为它是不重复的! 3 set1.add(5) 4 set1.update(‘Alpha‘) # 将字符串拆分后,分别无序插入集合中 5 print(set1) 6 7 ‘‘‘删‘‘‘ 8 set1.pop() # 随机删除 9 set2.remove(‘wuhan‘) # 按元素删除 10 print(set2) 11 set1.clear() # 清空集合 12 print(set1) 13 del set1 # 删除集合 14 # print(set1) 15 16 ‘‘‘查‘‘‘ 17 for i in set2: # 只能如此查询 18 print(i) 19 20 ‘‘‘交集‘‘‘ 21 set1 = {1, 2, 3, 6, 8, 9} 22 set2 = {6, 8, 10, 12, 16} 23 set3 = set1 & set2 24 set4 = set1.intersection(set2) 25 print(set3, set4) 26 27 ‘‘‘反交集‘‘‘ 28 set5 = set1 ^ set2 29 set6 = set1.symmetric_difference(set2) 30 print(set5, set6) 31 32 ‘‘‘并集‘‘‘ 33 set7 = set1 | set2 34 set8 = set1.union(set2) 35 print(set7, set8) 36 37 ‘‘‘差集‘‘‘ 38 set9 = set1 - set2 # set1独有的,即set2没有的 39 set10 = set1.difference(set2) 40 print(set9, set10) 41 42 ‘‘‘子集和超集‘‘‘ 43 set1 = {6, 8, 10} 44 print(‘set1是不是set2的子集:{0}‘.format(set1 < set2)) 45 print(‘set1是不是set2的子集:{0}‘.format(set1.issubset(set2))) 46 print(‘set2是不是set1的超集:{0}‘.format(set2 > set1)) 47 print(‘set2是不是set1的超集:{0}‘.format(set2.issuperset(set1)))
frozenset(冻结集合)可理解为只读的集合
1 set0 = frozenset(‘abcde‘) # 只能是一个可迭代的元素 2 set0 = frozenset([1,3,5,7,9]) # 只能是一个可迭代的元素 3 print(set0, type(set0)) 4 # 只读即只能查询 5 for i in set0: 6 print(i)
集合相关面试题:
有列表如下:[1,22,33,22,44,55,22,22,88,22]请将该列表中重复的元素去除。
1 num_li = [1,22,33,22,44,55,22,22,88,22]
2 temp_set = set(num_li)
3 new_li = list(temp_set)
4 print(new_li)
以上是关于python基础之七:set 集合的主要内容,如果未能解决你的问题,请参考以下文章