集合
集合(Set)是 Python 中的一个数据类型,用于存储唯一且无序的元素。集合中的元素是不可变的,并且没有重复的值。
集合使用花括号 {} 表示,元素之间用逗号 , 分隔。
定义一个集合
my_set = set()
print(my_set) # set()
print(type(my_set)) # <class 'set'>
集合中的元素是唯一的,如果在创建集合时有重复的元素,只会保留一个副本。
my_set = {1, 2, 2, 3, 3, 4, 5}
print(my_set) # 输出: {1, 2, 3, 4, 5}
集合的常用方法
union 或 |
并集 或者 合计 全部取出
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
union_set = set1.union(set2)
simple_union_set = set1 | set2
print(union_set) # {1, 2, 3, 4, 5, 6, 7, 8}
print(simple_union_set) # {1, 2, 3, 4, 5, 6, 7, 8}
intersection 或 &
交集 共有的部分
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
intersection_set = set1.intersection(set2)
simple_intersection_set = set1 & set2
print(intersection_set) # {4, 5}
print(simple_intersection_set) # {4, 5}
difference 或 -
一个集合减去另外一个集合的共有部分,保留剩下的
a - b 表示a减去a和b共同的部分,保留a独有的东西。
b - a 表示b减去a和b共同的部分,保留b独有的东西。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 共有部分是{4, 5} set1去除共有部分
difference_set = set1.difference(set2)
simple_difference_set = set1 - set2
print(difference_set) # {1, 2, 3}
print(simple_difference_set) # {1, 2, 3}
symmetric_difference_set 或 ^
两个集合的独有元素(即去掉共有的元素)
相当于先并集然后减去交集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
symmetric_difference_set = set1.symmetric_difference(set2)
simple_symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set) # {1, 2, 3, 6, 7, 8}
print(simple_symmetric_difference_set) # {1, 2, 3, 6, 7, 8}
issubset 或 <=
判断集合是否是另一个集合的子集。
set1 = {1, 2, 3, 4, 5}
set2 = {2, 3}
result = set2.issubset(set1)
simple_result = set1 <= set2
print(result) # True
print(simple_result) # False
issuperset 或 >=
判断集合是否是另一个集合的超集。
set1 = {1, 2, 3, 4, 5}
set2 = {2, 3}
result = set1.issuperset(set2)
simple_result = set1 >= set2
print(result) # True
print(simple_result) # True
isdisjoint
判断集合是否与另一个集合没有交集。
如果两个集合没有交集(共同部分)则返回True 否则返回False
set1 = {1, 2, 3, 4, 5}
set2 = {2, 3}
result = set1.isdisjoint(set2)
print(result) # False
set1 = {1, 2, 3, 4, 5}
set2 = {7, 9}
result = set1.isdisjoint(set2)
print(result) # True
copy
创建并返回集合的一个副本
set1 = {1, 2, 3, 4, 5}
set2 = set1.copy()
print(set2) # set1 = {1, 2, 3, 4, 5}
add
向集合中添加一个元素
set1 = {1, 2, 3, 4, 5}
set1.add(8)
print(set1) # {1, 2, 3, 4, 5, 8}
update
将可迭代的元素添加到集合中
set1 = {1, 2, 3, 4, 5}
set1.update("小满最棒啦")
print(set1) # {'满', 1, 2, 3, 4, 5, '小', '棒', '啦', '最'}
set1 = {1, 2, 3, 4, 5}
set1.update(["a", "b"])
print(set1) # {1, 2, 3, 4, 5, 'a', 'b'}
set1 = {1, 2, 3, 4, 5}
set1.update({"小满": "最棒啦"})
print(set1) # {1, 2, 3, 4, 5, '小满'}
set1 = {1, 2, 3, 4, 5}
data = ("Eva", "Amigo")
set1.update(data)
print(set1) # {1, 2, 3, 4, 5, 'Amigo', 'Eva'}
remove
从集合中移除指定的元素,如果元素不存在会引发 KeyError。
set1 = {1, 2, 3, 4, 5}
set1.remove(3)
print(set1) # {1, 2, 4, 5}
set1 = {1, 2, 3, 4, 5}
set1.remove(8)
print(set1) # KeyError: 8
discard
从集合中移除指定的元素,如果元素不存在不会引发错误。
set1 = {1, 2, 3, 4, 5}
set1.discard(8)
print(set1) # {1, 2, 3, 4, 5}
pop
随机移除并返回集合中的一个元素。
set1 = {1, 2, 3, 4, 5}
number = set1.pop()
print(number) # 1
print(set1) # {2, 3, 4, 5}
clear
清空集合里面的元素
set1 = {1, 2, 3, 4, 5}
set1.clear()
print(set1) # set()
删除集合
set1 = {1, 2, 3, 4, 5}
print(set1)
del set1
print(set1) # NameError: name 'set1' is not defined.