【问题标题】:How do I read lines from a file and create a dictionary from them?如何从文件中读取行并从中创建字典?
【发布时间】:2020-09-29 09:14:31
【问题描述】:

如果我的文件每行包含 2 个字母,以空格分隔,例如:

a  b
c  d
e   f

如何创建一个函数来读取它并将其转换为字典,其中每行的第一个字母是键,每行的第二个字母是值?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

此代码首先逐行读取文件,然后将每一行拆分为一个二维数组,如下所示:

[[a, b],
 [c, d]
 ...
       ]

它根据这个数组添加字典条目(mydict[a] = b 等等)。

with open("filename", "r") as file:
    myinput = file.readlines()
myinput = [i.split(" ") for i in myinput]
mydict = {}
for i in myinput:
    mydict[i[0]] = i[1]

正如@wjandrea 所指出的,你也可以这样写上面的代码:

with open("filename", "r") as file:
    mydict = {line.split() for line in file}

【讨论】:

  • input 是一个错误的变量名,因为它隐藏了内置的 input()
  • 既然可以一次搞定,为什么还要四步搞定? mydict = {line.split() for line in file}
  • @wjandrea 感谢您的建议!我已经编辑了答案以包含它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多