Python基础之set集合详解
Set是Python的一种基本数据类型,与列表(List)、元祖(Tuple)、字典(Dictionary)一样,它是一种可迭代的数据集合。其中的元素没有顺序,也没有重复的值,这些元素必须是可哈希的。
创建集合
可以使用以下方式来创建一个集合:
# 创建一个空集合
empty_set = set()
# 创建一个非空的集合
fruit_set = {"apple", "banana", "orange"}
如果要创建一个空集合,必须使用set()
方法,因为使用{}
创建的是空字典。
添加元素
使用add()
方法可以向集合中添加元素。如果添加的元素已经在集合中,那么操作不会产生任何影响。
fruit_set = {"apple", "banana", "orange"}
# 向集合中添加元素
fruit_set.add("pear")
# 尝试向集合中添加已有元素
fruit_set.add("apple")
print(fruit_set) # {'banana', 'orange', 'apple', 'pear'}
删除元素
使用remove()
方法可以从集合中删除元素。如果元素不存在,将会引发一个KeyError
异常。
fruit_set = {"apple", "banana", "orange"}
# 从集合中删除元素
fruit_set.remove("banana")
print(fruit_set) # {'orange', 'apple'}
集合运算
Set支持多种集合运算。常用的运算符包括:
- 并集运算(
|
):返回两个集合的所有元素。 - 交集运算(
&
):返回两个集合中都存在的元素。 - 差集运算(
-
):返回第一个集合中存在,而第二个集合中不存在的元素。 - 对称差运算(
^
):返回两个集合中仅存在于其中一个集合中的元素。
fruit_set1 = {"apple", "banana", "orange"}
fruit_set2 = {"orange", "pear", "grape"}
# 并集运算
union_set = fruit_set1 | fruit_set2
print(union_set) # {'banana', 'orange', 'pear', 'grape', 'apple'}
# 交集运算
intersection_set = fruit_set1 & fruit_set2
print(intersection_set) # {'orange'}
# 差集运算
difference_set = fruit_set1 - fruit_set2
print(difference_set) # {'banana', 'apple'}
# 对称差运算
symmetric_difference_set = fruit_set1 ^ fruit_set2
print(symmetric_difference_set) # {'pear', 'banana', 'grape', 'apple'}
集合方法
Set还提供了一些方便的方法,可以用于集合的操作。常用的方法包括:
len()
:返回集合中元素的数量。clear()
:从集合中删除所有元素。copy()
:复制一个集合。issubset()
:判断当前集合是否为另一个集合的子集。issuperset()
:判断当前集合是否为另一个集合的超集。union()
:返回两个集合的并集。intersection()
:返回两个集合的交集。difference()
:返回两个集合的差集。symmetric_difference()
:返回两个集合的对称差集。
fruit_set = {"apple", "banana", "orange"}
# 获取集合中元素的数量
fruit_count = len(fruit_set)
print(fruit_count) # 3
# 复制一个集合
fruit_copy = fruit_set.copy()
print(fruit_copy) # {'banana', 'orange', 'apple'}
# 判断是否为子集
is_subset = {"apple", "banana"}.issubset(fruit_set)
print(is_subset) # True
# 判断是否为超集
is_superset = fruit_set.issuperset({"apple", "banana"})
print(is_superset) # True
# 返回两个集合的并集
fruit_set2 = {"orange", "pear", "grape"}
union_set = fruit_set.union(fruit_set2)
print(union_set) # {'banana', 'orange', 'pear', 'grape', 'apple'}
# 返回两个集合的交集
intersection_set = fruit_set.intersection(fruit_set2)
print(intersection_set) # {'orange'}
# 返回两个集合的差集
difference_set = fruit_set.difference(fruit_set2)
print(difference_set) # {'banana', 'apple'}
# 返回两个集合的对称差集
symmetric_difference_set = fruit_set.symmetric_difference(fruit_set2)
print(symmetric_difference_set) # {'banana', 'pear', 'grape', 'apple'}
示例说明
示例1: 从列表中去除重复元素
可以将一个列表转换成一个集合,从而去除其中的重复元素。例如:
num_list = [1, 2, 3, 1, 2, 4, 5, 3]
# 使用 set() 方法将列表转换为集合,自动删除重复元素
num_set = set(num_list)
print(num_set) # {1, 2, 3, 4, 5}
示例2: 求两个列表的并集
可以将两个列表转换成集合,再使用并集运算符(|
),求两个列表的并集。例如:
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
# 将两个列表转换成集合,求并集
set1 = set(list1)
set2 = set(list2)
union_set = set1 | set2
print(union_set) # {1, 2, 3, 4, 5, 6, 7, 8}
以上就是Python基础之set集合的详细攻略,希望对您的学习有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python基础之set集合详解 - Python技术站