您不包括CountByYear类的示例,但指定它有一个构造函数,该构造函数接受“word”、“year”和“frequency”。你知道吗
假设定义如下:class CountByYear(object):
def __init__(self, word, year, frequency):
self.word = word
self.year = year
self.frequency = frequency
def __repr__(self):
return "CountByYear(year=%s, count=%s)" % (self.year, self.frequency)
你可以这样做:words = {}
for line in f:
word,year,freq = [i.strip() for i in line.split(',')]
#create a new list if one does not already exist for this word
if not words.get(word):
words[word] = []
#add this CountByYear object to corresponding list in the dictionary
words[word].append(CountByYear(word,year,freq))
print(words)
上述代码在示例输入文件中的输出为:{'gorilla': [CountByYear(year=2010, count=120302), CountByYear(year=2008, count=89323)], 'aardvark': [CountByYear(year=2007, count=123948), CountByYear(year=2008, count=120423), CountByYear(year=2004, count=96323)], 'raptorjesus': [CountByYear(year=1996, count=214)]}