Python从文件导入数据到字典并比较数据

标签 python file dictionary

我尝试使用此代码将一些键和值从相对较小的文件导入到字典中

winner = {}
with open ("Scores.txt") as file:
    for line in file:
        (key, val) = line.split()
        winner[key] = val

我的文件包含这样的内容:

Jeff 66
Tom 72
Aaron 34
Eva 47
Aaron 33
Jeff 36
Tom 34
Aaron 67
Tom 76

当我打印字典时,该值被具有相同键的数据覆盖。我想在不更改文件的情况下保留每个玩家的最高分。

这是我想做的事情的伪代码:

If the value in file > value in key:
    replace the value in key with the value in file
Else:
    Do nothing

最佳答案

使用dict.getmax :

winner = {}
with open ("Scores.txt") as file:
    for line in file:
        (key, value) = line.split()
        winner[key] = max(winner.get(key, 0), int(value))
print(winner)
{'Aaron': 67, 'Eva': 47, 'Jeff': 66, 'Tom': 76}

说明:

  • winner.get(key, 0) :返回value如果winner已经有key ,否则 0
  • max(winner.get(key, 0), int(value)) :比较max对于您的 dict 的每个条目

关于Python从文件导入数据到字典并比较数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55061172/

相关文章:

python命令替换linux命令

python - 如何将字符串变量从一个函数传递到另一个函数?

ruby - Rake - 仅复制更改的文件

c - 读取文件失败

python - 尝试为 AI 过滤字典

python - 用另一个索引多维数组的多个维度 - NumPy/Python

swift - 如何在 Swift 应用程序中将操作链接到文件->保存/文件->打开

python - 根据键的值对键进行采样

dictionary - 合并具有多种类型或 Any/AnyObject 类型的字典

python - 我可以在方法链中使用 pd.drop 来删除特定行吗?