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)))
View Code

  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) 

猜你喜欢

转载自www.cnblogs.com/funyou/p/11909137.html
今日推荐