nDimensional sparse histogram in python.
Kirk McDonald
mooquack at suad.org
Wed Feb 1 22:57:58 EST 2006
KraftDiner wrote:
> Ok so this is nice.. Just one thing.. When you try to get a value from
> a dictionary
> and it isn't found in the dictionary things go bad...
>
> Take this for example:
>
> class histogram(object):
> def __init__(self):
> self.histo = {}
>
> def update(self, point):
> if self.histo.get(point) != None:
> self.histo[point] = self.histo[point] + 1
> else:
> self.histo[point] = 1
>
> def get(self, point):
> return self.histo[point]
>
>
> hist = histogram()
> hist.update((0,0,0))
> hist.update((0,0,1))
> hist.update((0,0,1))
> hist.get((0,0,0))
> hist.get((0,0,1))
> hist.get((0,0,2))
>
> spews out this error:
>
> Traceback (most recent call last):
> File "histogram.py", line 21, in ?
> hist.get((0,0,2))
> File "histogram.py", line 12, in get
> return self.histo[point]
> KeyError: (0, 0, 2)
>
Try this:
class histogram(object):
def __init__(self):
self.histo = {}
def update(self, point):
self.histo[point] = self.histo.get(point, 0) + 1
def get(self, point):
return self.histo.get(point, 0)
dict.get's default return value is your friend.
-Kirk McDonald
More information about the Python-list
mailing list