[Tutor] Sets

Alan Gauld alan.gauld@blueyonder.co.uk
Fri Apr 18 17:58:52 2003


> > use a dictionary.
>
> recently began studying set theory), but why is using a dictionary a
> good way to implement sets?

Because a dictionary has a unique key mechanism so if you try
to add duplicate keys it won't work.

So we can build a set based on a dictionary such that:

> According to the set theory text I'm using
>     (1) {a, a} = {a}
>     (2) {a, b} = {b, a}

Only one entry for 'a' can exist

It doesn't matter which order you put the elements in.

> rid of---or ignore---duplicates?  Or would one implement a set where
the
> dictionary's key:value pairs are item:frequency

You could. But frequency should only be one. So I'd just
use key:None pairs

class Set:
   def __init__(self,elems = []): self.theSet = dict(elems)
   def addElement(self, elem): self.theSet[elem] = None
   def members(self): return self.theSet.keys()
   def union(self, anotherSet):
       return Set(self.theSet.items() + anotherSet.theSet.items())
   def isEmpty(self): return len(self.theSet.keys()) == 0

etc...

> Would the null set then be represented by
>     my_set = {}

Yes.

HTH,

Alan G.