在Python中,集合(set)是一种无序且不重复的数据结构,比较两个集合时可通过多种操作实现。以下是常见的比较操作举例:
- 集合基本操作
创建集合:用 {} 或 set() 创建,元素需可哈希(如数字、字符串等)。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}判断元素是否存在:用 in 或 not in 。
print(2 in set1) # True
print(5 not in set1) # True
- 集合关系比较
相等性比较: == 判断元素是否完全相同(顺序无关)。
set3 = {1, 2, 3}
set4 = {3, 2, 1}
print(set3 == set4) # True子集与超集:
A.issubset(B) 或 A <= B :判断A是否是B的子集(A所有元素都在B中)。
A.issuperset(B) 或 A >= B :判断A是否是B的超集(B所有元素都在A中)。
set5 = {1, 2}
set6 = {1, 2, 3}
print(set5 <= set6) # True
print(set6 >= set5) # True
- 集合运算(生成新集合)
交集: A & B 或 A.intersection(B) ,取同时存在于A和B中的元素。
print(set1 & set2) # {3, 4}并集: A | B 或 A.union(B) ,取A和B中的所有不重复元素。
print(set1 | set2) # {1, 2, 3, 4, 5, 6}差集: A - B 或 A.difference(B) ,取在A中但不在B中的元素。
print(set1 - set2) # {1, 2}
print(set2 - set1) # {5, 6}对称差集: A ^ B 或 A.symmetric_difference(B) ,取只在A或只在B中的元素。
print(set1 ^ set2) # {1, 2, 5, 6}
- 原地修改操作
交集更新: A.intersection_update(B) ,仅保留A中同时在B中的元素。
set7 = {1, 2, 3}
set8 = {2, 3, 4}
set7.intersection_update(set8)
print(set7) # {2, 3}并集更新: A.update(B) ,将B的元素添加到A中。
set9 = {1, 2}
set9.update({3, 4})
print(set9) # {1, 2, 3, 4}
- 集合大小比较
- 用 len() 比较集合元素数量。
print(len(set1) > len(set2)) # False(set1和set2长度都是4)