Hello again, it is me with another homework hurdle. I am currently tasked with creating a Set class. We are not permitted to use Python's set class. I have looked at Python's set class for hints, but I had difficulty understanding it. We are not allowed to add methods not listed in the assignment to the class.
I am using Windows Vista Business, and Python 2.3.
The assignment requires me to create a class named Set with the following methods:
Set(elements) Create a set
addElement(x) Adds x to the set
deleteElement(x) Removes x from the set, if present. If x is not in the set, the set is left unchanged
member(x) Returns true is x is in the set and false otherwise
intersection(set2) Returns a new set containing just those elements that are common to this set and set 2
union(set2) Returns a new set containing all of elements that are in this set, set2, or both
subtract(set2) Returns a new set containing all of the elements of this set that are not in set2
__str__() to construct strings in normal mathematical notation
clear() to remove all items from a set
equal() to text if 2 sets are equal
count() to report how many items are in a set
isSubset() Reports if a set is a subset of another set.
I have already made a bit of headway on the assignment.
class Set:
def __init__(self, elements):
self.elements = {}
for elem in elements:
self.elements[elem] = None
def __str__(self):
return str(self.elements.keys())
def addElement(self, x):
#adds the element to the set
self.elements[x] = None
def deleteElement(self, x):
#remove the element from the set
del self.elements[x]
def member(self, x):
#checks to see if the element is in the set
if self.elements.has_key(x) == True: return True
else: return False
def intersection(self, set2):
#show the numbers that are in both sets
set3 = Set([])
for i in self.elements:
if set2.member(i) == True:
set3.addElement(i)
return set3
def union(self, set2):
#put the numbers from the first set that are not in the second set into the second set
set3 = Set([])
for i in set2.elements:
if i not in self.elements:
set3.addElement(i)
for i in self.elements:
if set2.member(i) == True:
set3.addElement(i)
if i not in set2.elements:
set3.addElement(i)
return set3
def subtract(self, set2):
#remove the numbers in the second set from the first set
set3 = Set([])
for i in self.elements:
if set2.member(i) == False:
set3.addElement(i)
return set3
def clear(self):
#empty the set
set3 = Set([])
set3.clear()
"""def equal(self, set2):
#tests to see if the first set has the exact same elements as the second set
def count(self):
#count the number of items in the set
setList = len(self.elements.keys())
return setList
def isSubset(self, set2):
#tests to see if the second set is a subset of the first set"""
I am currently stuck on making clear() work for either my professor's test code or any Set. Once I get clear() working, I can tackle equal(), count(), and isSubset().
So, if anyone has any suggestions, please post them. And, thank you for your time.