2012-11-08 23 views
-1

对于我的家庭作业,我需要编写这个函数的主体,使用注释作为我的需求。在评论中提到的其他功能已经提供给我:Python函数从文本文件构建列表

def eventfreq(year,month): 

''' 
    Read DOT1000.txt and return a list of (d,ct) 
    pairs, where d is a date object of the form 
    datetime.date(A,B,C) 
    having A equal to the year argument and 
    B equal to the month argument to eventfreq(year,month). 
    The ct part of each pair is the number of records 
    that had a date equal to datetime.date(A,B,C). 

    One more requirement: sort the returned list 
    in increasing order by date (the sorted function will 
    do this for you) 

    Use fieldict("DOT1000.txt") to get the dictionary 
    of tuples used for building the list of pairs 
    that eventfreq(year,month) will return. 
    ''' 

这是我的努力:

def eventfreq(year, month): 
    N=fieldict('DOT1000.txt')[line][1] 
    L = [] # empty List for accumulation 
    for line in N: # data file is standard input 

       st = N[1] # get datetime.date 
       (L[st] = L.get(st,0) + 1) 
+1

我可警告你,现在这将被降低,试图更具体地说明你正在努力解决的问题的哪一方面 –

+0

我清理了你的问题;但@ COpython是正确的,你需要问一个具体的问题。例如,_“我明白如何调用函数并循环遍历结果,但我不知道如何去做____。我以这种方式尝试了它,但是我得到了这个错误_____” –

回答

0

尝试检查:

def eventfreq(year, month): 
    dates = [dt for x, dt, y in fieldict('DOT1000.txt') if dt.year==year and dt.month==month] 
    return [(dt, dates.count(dt)) for dt in set(dates)