我尝试使用此代码将一些键和值从相对较小的文件导入到字典中
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.get
和max
:
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/