Python中的集合函数:学会使用集合操作数据
集合(set)是一种无序、不重复元素的容器,它可以用来进行集合运算。Python中提供了多个集合函数,比如交集、并集、差集等,可以方便地对集合进行操作和计算。本文将介绍Python中常用的集合函数以及它们的使用方法。
创建集合
在Python中,可以使用{}或set()来创建一个空集合:
empty_set = {}
empty_set = set()
如果要创建一个有元素的集合,那么需要在{}或set()中添加元素:
fruits = {'apple', 'banana', 'orange'}
fruits = set(['apple', 'banana', 'orange'])
注意,在使用{}创建空集合时,需要注意与创建一个空字典的区别,因为它们都使用{}。可以通过type函数来判断一个变量是不是集合类型:
>>> type(empty_set) <class 'dict'> >>> type(fruits) <class 'set'>
求交集
交集(intersection)表示两个集合共有的元素,可以使用intersection方法或&运算符来求交集:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
intersection1 = set1.intersection(set2)
intersection2 = set1 & set2
print(intersection1) # {3, 4}
print(intersection2) # {3, 4}
求并集
并集(union)表示两个集合中所有元素的集合,可以使用union方法或|运算符来求并集:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
union1 = set1.union(set2)
union2 = set1 | set2
print(union1) # {1, 2, 3, 4, 5, 6}
print(union2) # {1, 2, 3, 4, 5, 6}
求差集
差集(difference)表示一个集合中不包含另一个集合中的元素剩下的元素,可以使用difference方法或-运算符来求差集:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
difference1 = set1.difference(set2)
difference2 = set1 - set2
print(difference1) # {1, 2}
print(difference2) # {1, 2}
注意,差集操作是单向的,即差集1返回的结果是set1中不包含在set2中的元素,而差集2返回的结果是set2中不包含在set1中的元素。
求对称差集
对称差集(symmetric difference)表示两个集合中不共有的元素的集合,可以使用symmetric_difference方法或^运算符来求对称差集:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
symmetric_difference1 = set1.symmetric_difference(set2)
symmetric_difference2 = set1 ^ set2
print(symmetric_difference1) # {1, 2, 5, 6}
print(symmetric_difference2) # {1, 2, 5, 6}
判断子集和超集
子集(subset)表示一个集合中的所有元素都在另一个集合中出现,可以使用issubset方法或<=运算符来判断是否是子集:
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
sub_set1 = set1.issubset(set2)
sub_set2 = set1 <= set2
print(sub_set1) # True
print(sub_set2) # True
超集(superset)表示一个集合包含另一个集合中出现的所有元素,可以使用issuperset方法或>=运算符来判断是否是超集:
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
super_set1 = set2.issuperset(set1)
super_set2 = set2 >= set1
print(super_set1) # True
print(super_set2) # True
判断是否没有交集
判断两个集合是否没有交集(disjoint)可以使用isdisjoint方法:
set1 = {1, 2, 3}
set2 = {4, 5, 6}
disjoint1 = set1.isdisjoint(set2)
disjoint2 = set2.isdisjoint(set1)
print(disjoint1) # True
print(disjoint2) # True
以上就是Python中常见的集合函数的使用方法,集合函数可以方便地对集合进行操作和计算。同时,在使用时需要注意,对于可变集合(mutable set),如set类型,函数和运算符会改变集合本身而不是返回一个新的集合;而对于不可变集合(immutable set),如frozenset类型,函数和运算符不会改变集合本身,而是返回一个新的集合。
