First Summer 2006


Lecture Notes Twenty-One: Dictionaries and Files as Databases
The code we developed in class yesterday:

class Candidate(object):
    def __init__(self, name):
        self.name = name
        self.points = 0
        self.votes = 0
    def add(self, points):
        self.points += points
        self.votes += 1
    def report(self):
        return self.points
    def show(self):
        print self.name + " (" + str(self.points) + ", " + str(self.votes) + ")"

votes = open("votes.txt", "r")
lines = votes.readlines()
votes.close()

catalog = {}

for line in lines:
    data = line.split()
    name = data[0]
    points = float(data[1])
    if not catalog.has_key(name):
        catalog[name] = Candidate(name)
    (catalog[name]).add(points)

for name in catalog.keys():
    (catalog[name]).show()

Notice that this requires a data file (called votes.txt):

Letterman 10
Oprah 5
Ferrell 8
Calvin 5
Oprah 8
Letterman 3
Ferrell 0
Calvin 0
Oprah 7
Letterman 5
Ferrell 8
Calvin 0
Perot 9.5
Oprah 5
Letterman 10
Calvin 2
Here's how this works if you play with it:

>>>
Perot (9.5, 1)
Ferrell (16.0, 3)
Letterman (28.0, 4)
Calvin (7.0, 4)
Oprah (25.0, 4)

>>> 


Last updated: July 24, 2006 by Adrian German for A201/A597