2013-03-13 2 views
0

문자열과 단어 목록으로 파일을 가져 오는 index()라는 함수를 만드는 데 도움이 필요합니다. 프로그램은 각 단어가 들어있는 번호 줄을 찾아 그 단어 옆에있는 번호 줄을 반환합니다. 나는 꽤 여기 붙어단어 목록이있는 번호 줄을 반환 하시겠습니까?

f=open(file,'r') 
    read = f.readlines() 

    for word in lst: 
     if word in range(len(read)): 
      word[:]+1 
    return read 

하지만 난 당신이 readlines 메쏘드의 목록의 인덱스()를 검색하는 거 야 생각 :로

지금까지 내 코드를 읽습니다. 이 문제는 루프와 형식을 사용해야합니다. 누구든지 나를 도울 수 있습니까?

FYI의 반환은 다음과 같이 표시됩니다 또한

index('raven.txt',['raven','mortal','dying','ghost','ghastly','evil','demon]) 

ghost  9 
dying  9 
demon  122 
evil  99, 106 
ghastly 82 
mortal 30 
raven  44, 53, 55, 64, 78, 97, 104, 111, 118, 120 

나는 이것이 당신이 원하는 무엇인가 3.

답변

0
def index(file, wordList): 
    word_dict = dict() 
    for word in wordList: 
     word_dict[word] = list() 
    with open(file,'r') as f: 
     for lineNum, lines in enumerate(f,1): 
      for word in wordList: 
       if word in lines: 
        word_dict[word].append(lineNum) 
    return word_dict 

myWordDict = index('raven.txt',['raven','mortal','dying','ghost','ghastly','evil','demon']) 

for items in myWordDict: 
    print(items, ":", myWordDict[items]) 

파이썬을 사용하고 있습니다?