2016-12-10 1 views
1
def CreateDataBaseByActor(file): 
    dataBase = dict() 
    set = {} 
    f = open(file,"r") 
    for line in f: 
     set = line.split(', ') 
     for movie in set[1:]: 
      dataBase[movie] = set[0] 
    return dataBase 

난 각 행의 형식으로 기록 된 파일 가지고 ACTOR_NAME 극장 1, movie2, movie3 ... 예 :에 사전에 세트에 값을 가산

  • 실베스터 스탤론, 록키, 람보, 암살자

  • 줄리안 무어, 자객, 한니발

    문제는 영화에 다른 배우 이름을 추가하려고 할 때입니다 (예 : 첫 번째 줄의 키 - 암살자 - 실베스터 스탤론이 있고 암살자 -의 두 번째 줄 값이 있음).) 대신이 함수의 이름에서 명확하지 않다 각각 내 배우의 목록 (에 영화 제목을 매핑하는 사전을 반환 할 가정

+0

당신이 '설정 = line.split을 어떻게 생각하십니까 (', ')'하고있다 이전에 정의 된'set = {}'에? 플러스 세트는 색인이 없으며 그런 식으로 사용할 계획이라면 조각을 지원하지 않습니다. –

+1

'set = {}'는 집합을 생성하지 않습니다. set이라는 사전을 만듭니다. 어쨌든 그 이름을 사용하는 것은 좋지 않습니다. – ayhan

답변

0

) 추가로,이 코드는해야 교체 너를 위해서해라. (나는 그것이 종류 후 변수의 이름을 지정하는 것은 좋지 않습니다 이후 set라는 이름의 변수가 fields를 호출하도록 변경합니다.)

def CreateDataBaseByActor(file): 
    dataBase = dict() 
    f = open(file, "r") 
    for line in f: 
     fields = line.split(', ') 
     actor = fields[0] 
     for movie in fields[1:]: 
      dataBase.setdefault(movie, []).append(actor) 
    return dataBase 
관련 문제