Assuming what self.tablea dict is, you can use
self.table.setdefault(field,0)
Everything else is similar. Note that if it self.tablealready has a key field, the value associated with this key is returned. Only if there is no key field, is it self.table[field]set to 0.
Edit: Perhaps this is closer to what you want:
import collections
class Foo(object):
def __init__(self):
self.CompleteAnalysis=collections.defaultdict(
lambda: collections.defaultdict(list))
def getFilledFields(self,sentence):
field, field_value, field_date = sentence.split('|')
field_value = field_value.strip('\n')
field_date = field_date.strip('\n')
self.CompleteAnalysis[field]['date'].append(field_date)
self.CompleteAnalysis[field]['value'].append(field_value)
foo=Foo()
foo.getFilledFields('A|1|2000-1-1')
foo.getFilledFields('A|2|2000-1-2')
print(foo.CompleteAnalysis['A']['date'])
print(foo.CompleteAnalysis['A']['value'])
Instead of tracking the score, maybe just take the length of the list:
print(len(foo.CompleteAnalysis['A']['value']))
# 2
source
share