用python 编写一个类,实现添加元素(如果存在则不添加),删除元素,弹出元素(pop),集合差集运算,集合并集运算,判断两个集合是否相等,>=运算符重载(集合包含关系),支持内置函数len,清空集合所有元素
时间: 2024-02-06 12:10:25 浏览: 61
可以使用Python内置的set数据结构来实现这个类,以下是一个示例:
```python
class MySet:
def __init__(self, elements=None):
self._set = set()
if elements:
self._set.update(elements)
def add(self, element):
if element not in self._set:
self._set.add(element)
def remove(self, element):
self._set.remove(element)
def pop(self):
return self._set.pop()
def difference(self, other_set):
return MySet(self._set.difference(other_set._set))
def union(self, other_set):
return MySet(self._set.union(other_set._set))
def __eq__(self, other_set):
return self._set == other_set._set
def __ge__(self, other_set):
return self._set >= other_set._set
def __len__(self):
return len(self._set)
def clear(self):
self._set.clear()
```
使用示例:
```python
s1 = MySet([1, 2, 3])
s2 = MySet([2, 3, 4])
s1.add(4) # s1 现在为 {1, 2, 3, 4}
s1.add(1) # s1 不变,仍为 {1, 2, 3, 4}
s1.remove(2) # s1 现在为 {1, 3, 4}
s1.pop() # 返回任意一个元素,并从 s1 中删除该元素
s3 = s1.difference(s2) # s3 现在为 {1}
s4 = s1.union(s2) # s4 现在为 {1, 3, 4}
s5 = MySet([1, 3, 4])
s6 = MySet([3, 4, 5])
s7 = MySet([1, 3, 4])
s8 = MySet([1, 2, 3, 4])
print(s1 == s5) # True
print(s1 == s6) # False
print(s1 == s7) # True
print(s1 >= s5) # True
print(s1 >= s8) # False
print(len(s1)) # 输出 2
s1.clear() # s1 现在为空集合
```
阅读全文