编写一个类,实现添加元素(如果存在则不添加),删除元素,弹出元素(pop),集合差集运算,集合并集运算,判断两个集合是否相等,>=运算符重载(集合包含关系),支持内置函数len,清空集合所有元素。
时间: 2023-11-17 08:04:50 浏览: 73
用于处理数据,求两个集合的交集、并集、补集。附源码。
下面是一个简单的示例代码,实现了上述功能:
```python
class Set:
def __init__(self, elements=[]):
self.elements = []
for element in elements:
self.add(element)
def add(self, element):
if element not in self.elements:
self.elements.append(element)
def remove(self, element):
if element in self.elements:
self.elements.remove(element)
def pop(self):
if len(self.elements) == 0:
return None
else:
return self.elements.pop()
def difference(self, other_set):
return Set([element for element in self.elements if element not in other_set.elements])
def union(self, other_set):
return Set(self.elements + [element for element in other_set.elements if element not in self.elements])
def __eq__(self, other_set):
return set(self.elements) == set(other_set.elements)
def __ge__(self, other_set):
return set(self.elements).issuperset(set(other_set.elements))
def __len__(self):
return len(self.elements)
def clear(self):
self.elements = []
```
这个类有一个名为 `elements` 的实例变量,用于存储集合中的元素。在 `__init__` 方法中,我们可以将传入的 `elements` 列表中的元素添加到集合中,实现了添加元素功能。
`add` 方法实现了添加元素功能,如果该元素已经存在于集合中,则不添加。
`remove` 方法实现了删除元素功能,如果该元素不存在于集合中,则不删除。
`pop` 方法实现了弹出元素功能,弹出集合中的最后一个元素。
`difference` 方法实现了集合差集运算,返回一个新的集合,其中包含在当前集合中但不在另一个集合中的元素。
`union` 方法实现了集合并集运算,返回一个新的集合,其中包含两个集合中的所有元素,但不包含重复的元素。
`__eq__` 方法重载了相等运算符,判断两个集合是否相等。
`__ge__` 方法重载了大于等于运算符,判断一个集合是否包含另一个集合。
`__len__` 方法重载了内置函数 `len`,返回集合中元素的数量。
`clear` 方法用于清空集合中的所有元素。
阅读全文