2016-12-06 27 views
0

내 함수는 파일 이름 인 문자열을 입력으로 사용하므로 사전을 반환해야합니다. 사전에는 키/값 쌍이 있습니다. 여기서 키는 단어 길이에 해당하는 정수이고 값은 해당 길이의 파일에 나타나는 단어 수입니다.동일한 길이의 단어 발생

and then the last assignment ended and everyone was sad 

그래서 이론적으로 반환 된 어법이과 같습니다 :

""" 
COMP 1005 - Fall 2016 
Assignment 10 
Problem 1 
""" 
def wordLengthStats(filename): 
    file = open(filename, 'r') 
    wordcount={} 
    for line in file.read().split(): 
     if line not in wordcount: 
      wordcount[line] = 1 
     else: 
      wordcount[line] += 1 
    for k,v in wordcount.items(): 
     print (k, v) 
    return None 

def main(): 
    ''' 
    main method to test your wordLengthStats method 
    ''' 
    d = wordLengthStats("sample.txt") 
    print("d should be { 3:5, 4:2, 5:1, 8:1, 10:1} ") 
    print("d is", d) 

if __name__ == '__main__': 
    main() 

:

{ 3:5, 4:2, 5:1, 8:1, 10:1} 

지금까지 내가 이것을 가지고

파일은 다음 문장으로 구성 문장은 단지 예일 뿐이므로 모든 입력이 작동하도록해야합니다. 이 문제에 대한 도움을 주시면 감사하겠습니다. 어떻게 당신이 의도`-`:없는 단어 수 라인 경우

def wordLengthStats(filename): 
    file = open(filename, 'r') 
    wordcount={} 
    for word in file.read().split(): 

     key = len(word) 

     if key not in wordcount: 
      wordcount[key] = 1 
     else: 
      wordcount[key] += 1 

    for k,v in wordcount.items(): 
     print (k, v)        
    return None 
+0

': 단어의 길이가 키입니다 문장의 모든 단어를 들어 –

+0

그래서 문제가 무엇입니까? – martineau

답변

0

, 당신은 사전에 항목을 추가 할 필요가 wordcount에 len (line)이 없다면 :`? 키는 단어가 아니라 단어 * 길이 *로되어 있습니다.
+0

감사합니다! 작동하지 않습니다. – comp1005

+0

파일을 닫지 마십시오. 'with' 블록을 사용해야합니다. –

+0

코드의 관련 부분 만 편집하면됩니다. – elelias