2017-04-16 67 views
1

我想讀取文件的字典,是這個樣子:的Python:閱讀文件,並把它與第一+第二行是關鍵

Lee 
Louise 
12345678 
711-2880 Nulla St. Mississippi 
Chapman 
Eric 
27681673 
Ap 867-859 Sit Rd. New york 
(...) 

,並使其與字典姓氏,姓氏,電話和地址的最後名字和名字。它應該看起來像成才這樣:

{'Lee Louise': ['Lee','Louise','12345678','711-2880 Nulla St. Mississippi'],'Chapman Eric': ['Chapman','Eric','27681673','Ap #867-859 Sit Rd. New york']} 

這是我到目前爲止已經完成:

d = dict() 
fr = open('file.txt', 'r').readlines() 
info = [k.split('\n') for k in fr] 
for k in range(len(info)): 
    if k % 4 == 0: 
     list = info[k :k + 4] 
     new_list = [b[0] for b in list] 
     d[info[k][0]] = new_list 
return d 

我只設法使lastnames成鍵.. 我能做些什麼,使最後一個名字和密鑰?

回答

2

有你的代碼

  • 要覆蓋Python函數列表幾個問題 - 壞主意。
  • 您已經在閱讀線條 - 使用strip('\ n')分割創建寄生列表。
  • 使用範圍與步驟4
  • 我提到過1個字母的變量名嗎?作爲

    info = open(...).read().splitlines() # Saves from re-building list 
    for offset in range(0, len(info), 4): 
        d[' '.join(info[offset: offset + 2]) = info[offset: offset + 4] 
    

    代碼的

我會重新寫片段沒有寄生名單 - 從new_list

0

更換d[info[k][0]] = new_list

有:

d[" ".join([info[k][0],info[k][1]]]) = new_list

+0

加入節能要求單個位置參數 - 列表或字符串的元組。這不起作用。無論如何,切片會更優雅 – volcano

+0

我這樣做,它說TypeError:join()只需要一個參數(給出2),我該怎麼做? – bubblyc

+0

對不起,像火山表示需要在要加入的項目列表周圍添加括號或者parens,以便進行編輯以顯示該列表。他還建議類似d [「」.join(info [k] [0:2])] = new_list – MattMcKnight

相關問題