2017-03-26 191 views
-1

我想編寫一個函數來打開包含兩行的文件,並創建一個字典。第一行是給出鍵的字符串,第二行是給出值的字符串。Python:從文件創建字典

我該怎麼做呢?

+0

鍵/值是如何分開的?間距?逗號? – LFlare

+0

你有什麼嘗試?你的文件中有什麼? – abccd

+0

我沒有得到一個文件,我只是應該寫一個這樣的任意函數 – Hannnnn

回答

2

該技術是使用file.readline()一次提取一條線。使用str.split()將其分解爲鍵(無論您是否需要明確的分隔符取決於您的數據)。一旦值獲得zip()在一起,並呼籲dict()作出最後的詞典:

with open('somefile.txt') as f: 
    keys = f.readline().split() 
    values = f.readline().split() 
d = dict(zip(keys, values)) 

例如,假定 「somefile.txt」 是這樣的:

python ruby go c rust swift 
snake gem verb letter oxide race 

由此產生的字典d將是:

{'python': 'snake', 'ruby': 'gem', 'go': 'verb', 'c': 'letter', 'rust': 'oxide', 'swift': 'race'} 
0

短而簡單

file = open("file.txt", "r").read() 
lines = file.split("\n") 
dictionary = dict() 

while (i < len(lines[0])): 
    dictionary[lines[0][i]] = lines[1][i] 
+0

你測試過這個代碼嗎?我認爲它不起作用。 '我'從未初始化。 「我」永遠不會增加,所以程序可能永遠不會退出。文件句柄永遠不會關閉。在風格上,不依賴位置索引(如[[0]和[1])的解決方案是首選,因爲它們更易於閱讀。 'dictionary = {}'優於'dictionary = dict()'來初始化一個空字典。接受的答案很簡單。 –