#!/usr/bin/python
class Set(object):
def __init__(self):
self._d = {}
@property
def d(self):
return self._d
@d.setter
def d(self, d):
self._d = d
@d.deleter
def d(self):
del self._d
def insert(self, v):
"""Insert an object into set"""
self.d[v] = 0
def union(self, s):
temp = Set()
for e in s.d:
temp.insert(e)
for e in self.d:
temp.insert(e)
return temp
def intersection(self, s):
temp = Set()
for i in self.d:
if i in s.d:
temp.insert(i)
return temp
def difference(self, s):
temp = Set()
for i in self.d:
if not i in s.d:
temp.insert(i)
return temp
def subset(self, s):
for i in self.d:
if not i in s.d:
return False
return True
def __str__(self):
s = ''
for e in self.d:
s += str(e)+' '
return s
def main():
s = Set()
s.insert(1)
s.insert(2)
s.insert(3)
s.insert(4)
s2 = Set()
s2.insert(1)
s2.insert(10)
s2.insert(2)
s2.insert(20)
# union
u = s.union(s2)
print(u)
# intersection
i = s.intersection(s2)
print(i)
# difference
d = s.difference(s2)
print(d)
# subset
print(s.subset(s2))
if __name__ == '__main__':
main()