【问题标题】:Python Dictionary with multiple keys with same name problem具有多个同名键的Python字典问题
【发布时间】:2020-05-07 09:41:55
【问题描述】:

我正在寻找一些关于将文件中的信息转换为字典的指导。

fruit.txt

Apple,5
Orange,6
Pear,10
Orange,2
Apple,1

输出应该是:

{'Apple': [5, 1], 'Orange': [6,2], 'Pear': [10]}

据我了解,一本字典不能保存多个同名值。当输出遇到重复值时会覆盖自身时,这一点很明显。 我尝试使用 defaultdict,但没有运气。

我的下一个思考过程是将其转换为列表,然后使用列表作为键转换为字典,但我不确定该怎么做。任何指导或指示都会很棒。

【问题讨论】:

  • 字典可以有一个值,列表只有一个值。

标签: python list file dictionary


【解决方案1】:

您可以遍历文件的各行并使用defaultdict 将值添加到相应的键。

例子:

from collections import defaultdict

res = defaultdict(list)

with open('file.txt') as f:
    for line in f:
        k, v = line.rstrip().split(',')
        res[k].append(int(v))

导致

defaultdict(<class 'list'>, {'Apple': [5, 1], 'Orange': [6, 2], 'Pear': [10]})

【讨论】:

  • 天哪。太感谢了。你不知道我是多么想在我的脑海里把它复杂化。这让我非常沮丧。我不敢相信。谢谢
猜你喜欢
  • 2014-04-27
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 2019-09-18
  • 2011-06-09
  • 2018-09-28
相关资源
最近更新 更多