请编程实现集合的操作:并集、交集、差分、互补、对称差分和幂集。
时间: 2024-10-29 18:16:23 浏览: 63
在编程中,特别是使用像Python这样的支持集合操作的语言,可以轻松地实现上述集合操作。以下是一些基本的例子:
- 并集(Union):将两个集合的所有元素合并到一个新的集合中,如果两个集合中有相同的元素,结果只会出现一次。 ```python def union(set1, set2): return set1.union(set2)
set1 = {1, 2, 3} set2 = {3, 4, 5} print(union(set1, set2)) # 输出:{1, 2, 3, 4, 5}
2. **交集(Intersection)**:返回两个集合中共有的元素组成的集合。
```python
def intersection(set1, set2):
return set1.intersection(set2)
print(intersection(set1, set2)) # 输出:{3}
- 差集(Difference):返回第一个集合中不包含在第二个集合中的元素。 ```python def difference(set1, set2): return set1.difference(set2)
print(difference(set1, set2)) # 输出:{1, 2}
4. **补集(Complement)**:返回当前集合中不在另一个给定集合中的所有元素,通常用于整个数据集的情况。
```python
def complement(base_set, other_set):
return base_set - other_set
# 假设我们有一个更大的全集base_set
full_set = {0, 1, 2, ..., 9}
print(complement(full_set, set2)) # 输出:{0, 1, 2, ... (除了set2的元素)}
- 对称差分(Symmetric Difference):返回两个集合中独有的元素组成的集合,即既不属于A也不属于B的元素以及反之。 ```python def symmetric_difference(set1, set2): return set1.symmetric_difference(set2)
print(symmetric_difference(set1, set2)) # 输出:{1, 2, 4, 5}
6. **幂集(Power Set)**:返回所有可能从给定集合中选取的子集的集合,包括空集和原集合本身。
```python
def power_set(input_set):
return set({ frozenset(subset) for subset in itertools.chain(*[[i], input_set - {i}] for i in input_set) })
print(power_set(set1)) # 输出:{frozenset(), frozenset({1}), frozenset({2}), frozenset({3}), frozenset({1, 2}), frozenset({1, 3}), frozenset({2, 3}), frozenset({1, 2, 3})}
以上函数假设set1
和set2
已经定义好了。
相关推荐














