Python学习之集合set
什么是集合
集合(set)是一种无序、不重复元素的容器类型,可以进行集合运算,比如交集、并集和差集等。
集合和列表(list)、元组(tuple)、字典(dictionary)不同的是,它没有顺序,不能使用下标(index)来过去其中的元素。另外,集合内部的元素必须是不可变对象。
创建集合
Python中可以用set函数或者花括号{}来创建集合,不同之处在于set函数可以接收可迭代对象作为参数而创建集合。示例如下:
# 使用set函数创建集合
set1 = set([1, 2, 3, 4, 5])
print(set1) # 输出 {1, 2, 3, 4, 5}
# 使用花括号创建集合
set2 = {1, 3, 5, 7, 9}
print(set2) # 输出 {1, 3, 5, 7, 9}
集合运算
集合有多种运算,包括交集、并集、差集、异或集等。其中的运算符如下:
运算符 | 描述 |
---|---|
| | 并集,返回包含两个集合中所有元素的新集合。 |
& | 交集,返回两个集合中都包含的元素的新集合。 |
– | 差集,返回在第一个集合中但不在第二个集合中的元素的新集合。 |
^ | 异或集,返回包含两个集合中非重复元素的新集合。 |
示例如下:
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}
集合方法
集合有很多有用的方法可以使用,以下是一些常用方法的示例:
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6}
# 添加元素
set1.add(6)
print(set1) # 输出 {1, 2, 3, 4, 5, 6}
# 移除元素
set1.remove(6)
print(set1) # 输出 {1, 2, 3, 4, 5}
# 随机移除一个元素
set1.pop()
print(set1) # 输出 {2, 3, 4, 5}
# 更新集合
set1.update(set2)
print(set1) # 输出 {2, 3, 4, 5, 6}
# 长度
print(len(set1)) # 输出 5
# 清空集合
set1.clear()
print(set1) # 输出 set()
上面的示例包含了集合中的添加、移除、更新、长度、清空等操作。在实际编程中,我们需要根据实际情况选择使用相应的方法。
示例说明
下面是两个示例说明:
示例一:去重
假设我们有一个列表,其中包含了多个重复的元素。
lst = [1, 2, 2, 3, 3, 4, 4, 5, 5, 5]
我们需要得到一个不包含重复元素的新列表,可以使用集合来实现。
set1 = set(lst)
new_lst = list(set1)
print(new_lst) # 输出 [1, 2, 3, 4, 5]
示例二:数据比较
假设我们有两个集合A和B,我们需要找到它们之间的相同元素和不同元素。
setA = {'a', 'b', 'c', 'd'}
setB = {'c', 'd', 'e', 'f'}
# 相同元素
print(setA & setB) # 输出 {'c', 'd'}
# 不同元素
print(setA - setB) # 输出 {'a', 'b'}
print(setB - setA) # 输出 {'e', 'f'}
我们可以通过使用集合的交集和差集来得到相同元素和不同元素。