集合(set)是一个无序的不重复元素序列。集合中的所有元素必须是可哈希的值,即不可变类型,而且元素在集合中是无序的。
与其他序列类型最大的区别,集合中的元素是不重复的,每个元素只能在同一个集合中出现一次,这一特性,在某些去重场景中将变得非常适用。
1、创建集合
同其他数据类型相似,我们可以直接将一个集合赋值给变量,也可以使用工厂函数set()进行创建。
# 创建集合
set1 = {"Hello", "Python"}
set2 = set(["Happy", "New", "Year"])
print(set1, set2)
# {'Python', 'Hello'} {'Year', 'Happy', 'New'}
2、访问集合
由于集合中的元素是无序的,自然也无法通过索引的方式进行访问。想要访问集合中的元素,我们只能通过遍历或者判断集合是否包含某个元素的方式进行访问集合元素。
# 遍历集合
set1 = set(["Happy", "New", "Year"])
for ch in set1:
print(ch)
# Happy
# Year
# New
# 判断集合是否包含
if "Happy" in set1:
print("Happy")
# Happy
3、修改集合
集合是可变类型,我们可以通过添加或删除元素的方式,对集合中元素进行修改。
# 添加单个元素
set1 = {"Hello", "Python"}
set1.add("Hi")
print(set1)
# {'Python', 'Hi', 'Hello'}
# 添加多个元素
set1.update(["Happy", "New", "Year"])
print(set1)
# {'Hi', 'New', 'Python', 'Happy', 'Year', 'Hello'}
# 移除元素
set1.remove("Hello")
print(set1)
# {'Hi', 'Year', 'Happy', 'New', 'Python'}
4、清空集合
通过clear()方法即可将集合清空
# 清空集合
set1 = {"Hello", "Python"}
set1.clear()
print(set1)
# set()
5、其他操作
# 集合去重
lst1 = ["abc", "book", "apple", "car", "earth", "banana", "book"]
set1 = set(lst1)
print(set1)
# {'book', 'abc', 'earth', 'car', 'apple', 'banana'}
# 集合运算
a = {1, 2, 3, 4, 5, 6}
b = {2, 4, 6, 8}
# 集合a包含而集合b不包含的元素
print(a - b)
# {1, 3, 5}
# 集合a或b中包含的元素
print(a | b)
# {1, 2, 3, 4, 5, 6, 8}
# 集合a和b中都包含的元素
print(a & b)
# {2, 4, 6}
# 不同时包含于集合a和b的元素
print(a ^ b)
# {1, 3, 5, 8}