我尝试使用以下代码将一些键和值从一个相对较小的文件导入到字典中
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.get(key, 0)
:如果winner
已经有了key
,则返回value
,否则返回0max(winner.get(key, 0), int(value))
:为dict
的每个条目比较max
您可以收集每个键的所有值,然后取最大值,或者读取每行,获取键和值,并检查值是否高于当前值。如果是,请更换。
defaultdict(int)
的默认值是0,因此应该始终低于文件中的任何分数。你知道吗打印
defaultdict(<class 'int'>, {'Jeff': 66, 'Tom': 76, 'Aaron': 67, 'Eva': 47})
如果可能出现负分数,则使用
defaultdict(lambda: -10000)
(或任何其他负数,低于最低可能分数)。你知道吗相关问题 更多 >
编程相关推荐