一、集合的定义
在Python中,集合是一种无序、可变且不重复的数据结构。集合可以通过大括号{变量}创建,或使用set()函数创建。
集合中的元素必须是不可变的,不能包含可变对象(如列表或字典)。集合可以支持一些常见的集合操作,如并集、交集等。
集合定义的第一种方法(缺点不可以使用{}定义):
# 使用大括号创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set) # 输出: {1, 2, 3, 4, 5}
s0 = {}
print(s0, type(s0)) # 输出:{} <class 'dict'>
集合定义的第二种方法:
# 方式二 set()中各异放入可迭代类型(iterable)
s1 = set()
print(s1, type(s1)) # 输出:set() <class 'set'>
s2 = set("hellop")
print(s2, type(s2)) # 输出:{'e', 'l', 'p', 'o', 'h'} <class 'set'>
s3 = set(range(10))
print(s3, type(s3)) # 输出:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} <class 'set'>
二、集合的常见操作
1、添加元素:使用add()方法添加单个元素;
s0 = {1, 2, 3, 4, 5, 6}s
s0.add(7)
print(s0) # 输出:{1, 2, 3, 4, 5, 6, 7}
2、移除元素:使用remove()方法移除指定元素,如果不存在会抛出KeyError异常;使用discard()方法移除指定元素,如果不存在不会抛出异常;使用pop()方法任意删除一个,返回删除的元素。
# 随即删除一个元素,有返回值
s4 = {1, 2, 3, 5, 6, 7}
r = s4.pop()
print(s4, r) # 输出:{2, 3, 5, 6, 7} 1
# 指定删除一个指定元素 没有返回值,找不到会报错,没有返回值
print(s4.remove(5)) # 输出:None
# 删除一个元素,不存在不会报错,没有返回值
print(s4.discard(6), s4) # 输出:None {2, 3, 7}
3、清空集合:使用clear()方法清空集合。
4、并集:使用union()方法。
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# 使用 union() 方法获取两个集合的并集
union_set = set1.union(set2)
# 打印并集结果
print("并集:", union_set) # 输出:{1, 2, 3, 4, 5, 6, 7}
5、交集:使用intersection()方法。
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# 使用 intersection() 方法获取两个集合的交集
intersection_set = set1.intersection(set2)
# 打印交集结果
print("交集:", intersection_set) # 输出:{3, 4, 5}
6、差集:使用difference()方法。
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# 使用 difference() 方法获取 set1 相对于 set2 的差集
difference_set = set1.difference(set2)
# 打印差集结果
print("差集 (集合1 相对于集合2):", difference_set) # 输出:{1, 2}