【问题标题】:How to create a dictionary with data from a text file?如何使用文本文件中的数据创建字典?
【发布时间】:2016-04-16 13:04:24
【问题描述】:

我在这样的文本文件中有两列:

William 2
David 3
Victor 5
Jack 1
Gavin 4

我希望它在字典中是这样的:

d = {'William': 2,'David': 3,'Victor': 5,'Jack': 1,'Gavin': 4}

我该怎么做?

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • 我只剩下 3 天的时间来完成这项任务!

标签: python-3.x


【解决方案1】:
data = dict(line.split() for line in open('file.txt', 'r'));

【讨论】:

  • .readlines() 不需要 - open() 已经返回一个迭代器(并且是惰性的)。此外,不需要方括号 - 当生成器表达式可用作 dict 的输入参数时,无需在内存中构建庞大的列表。
  • 但它不应该有最高报价?!
  • 这次我运行它就像:{'William': '2',...}
【解决方案2】:

你可以用这个:

d = {}
with open('file.txt') as file:    
    for line in file.readlines():
        key, value = line.split()
        d[key] = int(value)
print(d)

输出:

{'David': 3, 'Gavin': 4, 'William': 2, 'Jack': 1, 'Victor': 5}

【讨论】:

    【解决方案3】:
    myDictionary = {}
    
    with open('file.txt', 'r') as f:
        for line in f:
            myDictionary[line.split()[0]] = int(line.split()[1])
    

    您可能想了解更多关于 file i/odictionaries 的信息。

    【讨论】:

    • @WilliamJi 它对我来说工作正常。你说的“五次”是什么意思?
    • 这需要稍作改动才能获得所需的输出。 line.split()[1] 应该是 int(line.split()[1]。无论如何,为什么要分裂两次?
    • @Sнаđошƒаӽ 添加了int。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多