python的集合
在Python中,集合(Set)是一个无序的、不包含重复元素的数据结构。它主要用于数学上的集合操作,如并集、交集、差集和对称差集等。集合使用大括号{}定义,但是需要注意的是,集合中不能包含可变类型(如列表)作为元素,而且集合的定义不能为空大括号{}(这会被解释为空字典),而应该使用set()来创建一个空集合。
集合的定义方式
使用大括号{}直接定义集合(注意不能包含可变类型元素,且不能为空大括号):
my_set = {1, 2, 3, 4, 5} # 定义一个包含整数的集合
# 注意:{} 会被Python解释为一个空字典,而不是空集合
使用set()函数定义集合:
my_set = set([1, 2, 2, 3, 4]) # 集合会自动去重
empty_set = set() # 定义一个空集合
集合的特性
集合是无序的,没有下标, 不能使用索引来查找集合中的元素,
l= {1, 2, 3, 4}
for i in range(len(l)):
print(i,l[i])
集合是不可以重复的, 可以用来去重
l= {1, 2, 3, 4}
l1 = {1,3,7,9,11}
l.update(l1)
print(l)
集合中的数字会按照从左到右依次增大排序
l = {1, 2, 3, 4, 7, 6, 5, 9, 11}
print(l)
集合是可变的可以在集合中增加或者删减元素
l = {1, 2, 3, 4, 5, 6, 7}
l.add(9)
print(l)
l = {1, 2, 3, 4, 5, 6, 7}
l.remove(5)
print(l)
集合的数学操作
并集:使用 | 操作符或者 union() 方法来求两个集合的并集。
交集:使用 & 操作符或者 intersection() 方法来求两个集合的交集。
差集:使用 - 操作符或者 difference() 方法来求两个集合的差集(在第一个集合中但不在第二个集合中的元素)。
对称差集:使用 ^ 操作符或者 symmetric_difference() 方法来求两个集合的对称差集(在第一个集合或第二个集合中,但不同时在两个集合中的元素)。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 | set2) # 并集 {1, 2, 3, 4, 5, 6}
print(set1 & set2) # 交集 {3, 4}
print(set1 - set2) # 差集 {1, 2}
print(set1 ^ set2) # 对称差集 {1, 2, 5, 6}