2016-12-10 219 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,MOVIE1,電影2,... MOVIE3 例如:在字典中添加值到一組

  • 史泰龍,洛基,蘭博,刺客

  • 朱麗安·摩爾,刺客,漢尼拔

    問題是,當我嘗試添加到電影中時,另一個演員姓名(例如:在第一行中,鍵 - 刺客 - 具有值Sylvester史泰龍,並且在 - 刺客的第二行值中是更換而不是增加)

+0

你覺得呢'設置= line.split(「」)'是做到以前定義的'set = {}'? Plus套件沒有索引,並且不支持切片,以防計劃以這種方式使用它們。 –

+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