2017-03-26 116 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()'来初始化一个空字典。接受的答案很简单。 –