【发布时间】:2015-02-03 18:33:59
【问题描述】:
我在尝试解决这个任务时遇到了一个问题,所以在失败了几次之后我就在这里,我想知道当一个键存储多个时,我怎么才能只打印一个键(名称)的最高值(分数)值,例如:
Rob Scored: 3,5,6,2,8
Martin Scored: 4,3,1,5,6,2
Tom Scored: 7,2,8
名称是键,分数是值。现在我希望得到 p> 的输出
Martin Scored: 6
Rob Scored: 8
Tom Scored: 8
但是,当我尝试使用 max 函数时,它会忽略字母顺序。就像这不是一个要求以及其他分数必须保留以供以后阶段使用的事实一样。
from collections import OrderedDict
dictionary = {}
for line in f:
firstpart, secondpart = line.strip().split(':')
dictionary[firstpart.strip()] = secondpart.strip()
columns = line.split(": ")
letters = columns[0]
numbers = columns[1].strip()
if d.get(letters):
d[letters].append(numbers)
else:
d[letters] = list(numbers)
sorted_dict = OrderedDict(
sorted((key, list(sorted(vals, reverse=True)))
for key, vals in d.items()))
print (sorted_dict)
【问题讨论】:
-
这个问题今天已经有人问过了。奇怪:D
-
你的输入文件是什么样的?
-
它是一个 txt 文件,它看起来像第一个突出显示的示例,
Rob Scored: ....rob 是键,分数是值
标签: python sorting dictionary