自定义集合。在文件mySet.py中,模拟Python内置集合类型,实现元素添加、删除以及并集、交集、对称差集等基本运算。
时间: 2024-11-24 20:42:32 浏览: 10
在Python中,自定义集合(Custom Collection)通常通过创建一个类来实现,这个类通常会继承自`set`或`collections.UserList`,以便我们可以覆盖内置集合的行为,并添加额外的功能。例如,在`mySet.py`文件中,你可以这样做:
```python
from collections import UserList
class MySet(UserList):
def __init__(self, iterable=None):
super().__init__()
self.data = list(iterable or [])
# 添加元素
def add(self, element):
if element not in self.data:
self.data.append(element)
# 删除元素
def remove(self, element):
if element in self.data:
self.data.remove(element)
# 并集操作
def union(self, other_set):
result = MySet(self.data)
result.extend(other_set)
return result
# 交集操作
def intersection(self, other_set):
result = MySet()
for item in self.data:
if item in other_set:
result.add(item)
return result
# 对称差集操作
def symmetric_difference(self, other_set):
result = MySet(self.data)
for item in other_set:
if item not in self.data:
result.add(item)
for item in self.data:
if item not in other_set:
result.add(item)
return result
# 使用示例
my_set = MySet([1, 2, 3])
other_set = MySet([2, 4, 5])
my_set.add(4) # 添加元素
my_set.remove(2) # 删除元素
union_result = my_set.union(other_set)
intersection_result = my_set.intersection(other_set)
sym_diff_result = my_set.symmetric_difference(other_set)
print(f"Union: {union_result}")
print(f"Intersection: {intersection_result}")
print(f"Symmetric Difference: {sym_diff_result}")
```
在这个例子中,`MySet`类模拟了`set`的基本功能,如添加、删除元素,同时实现了并集、交集和对称差集的操作。
阅读全文