语法
集合是一种无序且不重复的数据结构,用于存储多个元素。它使用花括号 {} 来表示,并且元素之间使用逗号 , 分隔。以下是创建集合的基本语法:
my_set = {element1, element2, ...}
其中,element 可以是任意类型的对象。
需要注意的是,如果只使用一个空的花括号 {} 来创建一个变量,那么它将被解释为一个空字典而不是空集合。要创建一个空集合,可以使用 set() 构造函数。
常用: 集合方法:
1. add(element): 向集合中添加一个元素。
2. remove(element): 从集合中删除一个指定的元素,如果元素不存在,则会引发 KeyError。
3. discard(element): 从集合中删除一个指定的元素,如果元素不存在,则不执行任何操作。
4. pop(): 随机删除并返回集合中的一个元素。
5. clear(): 清空集合,删除所有元素。
6. copy(): 创建集合的副本。
7. len(): 返回集合中元素的数量。
8. in: 检查指定元素是否存在于集合中。
此外,集合还支持各种数学操作,如交集、并集、差集等。例如:
1. intersection(other_set): 返回与另一个集合的交集。
2. union(other_set): 返回与另一个集合的并集。
3. difference(other_set): 返回与另一个集合的差集。
4. symmetric_difference(other_set): 返回与另一个集合的对称差集。
示例
'''
集合是一种无序且不重复的数据结构,用于存储多个元素。它使用花括号 {} 来表示,并且元素之间使用逗号 , 分隔。以下是创建集合的基本语法:
my_set = {element1, element2, ...}
其中,element 可以是任意类型的对象。
需要注意的是,如果只使用一个空的花括号 {} 来创建一个变量,那么它将被解释为一个空字典而不是空集合。要创建一个空集合,可以使用 set() 构造函数。
常用: 集合方法:
1. add(element): 向集合中添加一个元素。
2. remove(element): 从集合中删除一个指定的元素,如果元素不存在,则会引发 KeyError。
3. discard(element): 从集合中删除一个指定的元素,如果元素不存在,则不执行任何操作。
4. pop(): 随机删除并返回集合中的一个元素。
5. clear(): 清空集合,删除所有元素。
6. copy(): 创建集合的副本。
7. len(): 返回集合中元素的数量。
8. in: 检查指定元素是否存在于集合中。
此外,集合还支持各种数学操作,如交集、并集、差集等。例如:
1. intersection(other_set): 返回与另一个集合的交集。
2. union(other_set): 返回与另一个集合的并集。
3. difference(other_set): 返回与另一个集合的差集。
4. symmetric_difference(other_set): 返回与另一个集合的对称差集。
'''
# 1. 创建一个集合
empty_set = set() # 创建一个空集合
my_set = {1, 2, 3, 4, 5}
# 2. 添加元素
my_set.add(6)
my_set.add(6) # 集合有去重的作用,添加2次,只会有1个
my_set.update('Allen') # 追加的数据是序列
my_set.update([88, 66]) # 追加的数据是序列
print(my_set) # {1, 2, 3, 4, 5, 6, 'e', 66, 'n', 88, 'A', 'l'} ,集合是无序的
# 3. 删除元素:因为集合无序,只能通过元素来删除
my_set.remove(3) # 删除指定元素,eg:删除元素3
# my_set.remove(333) # 如果删除元素,不存在,会报错KeyError: 333
my_set.discard(333) # 删除集合中的指定数据,如果数据不存在也不会报错。
# 如果集合为空,再调用pop()方法将引发KeyError异常。因此,在使用pop()方法之前,最好先检查集合是否为空。
del_element = my_set.pop() # 随机删除一个元素,并返回删除的数据
# 4. 遍历集合
for element in my_set:
print(element)
# 5. 获取集合元素的个数
print(len(my_set)) # 输出集合的长度
# 6. 检查元素是否存在,也可以使用not in
if 4 in my_set:
print('4 is present in the set.')
# 7. 创建集合的副本
new_set = my_set.copy()
1 # 8. 对列表去除
2 my_list = [2, 2, 3, 3]
3 my_set = set(my_list)
4 print(my_set)
1 '''
2 集合的差集 ,并集,交接,对称差集
3 '''
4
5 # 1. 差集使用difference:使用difference()方法可以获取一个集合相对于另一个集合的差集。
6 set1 = {1, 2, 3, 4, 5}
7 set2 = {4, 5, 6, 7, 8}
8
9 difference = set1.difference(set2)
10 print(difference) # 输出: {1, 2, 3} 即set1-set2剩余的元素
11
12 # 2. 交集(Intersection):intersection获取2个集合的交集
13 intersection = set1.intersection(set2)
14 print(intersection) # 输出: {4, 5}
15
16 # 3. 使用union()方法可以获取两个集合的并集
17 union = set1.union(set2)
18 print(union) # 输出: {1, 2, 3, 4, 5, 6, 7, 8}
19
20 # 4. 对称差集(Symmetric Difference): 使用symmetric_difference()方法可以获取两个集合的对称差集。
21 # 对称差集就是收集:2个集合的并集 - 2个集合的交接
22 symmetric_difference = set1.symmetric_difference(set2)
23 print(symmetric_difference) # 输出: {1, 2, 3, 6, 7, 8}
24
25 # 5. 也可以使用 & | ^ 代表交集\并集\对称差集
26 intersection = set1 & set2 # 交集
27 union = set1 | set2 # 并集
28 symmetric_difference = set1 ^ set2 # 对称差集