TXT содержало бы что-то вроде этого:Как отсортировать словарь для печати с самого высокого значения до самого низкого для каждого ключа?
Matt Scored: 10
Jimmy Scored: 3
James Scored: 9
Jimmy Scored: 8
....
кода мне удалось собрать (совершенно новый для питона) здесь:
from collections import OrderedDict
#opens the class file in order to create a dictionary
dictionary = {}
#splits the data so the name is the key while the score is the value
f = open('ClassA.txt', 'r')
d = {}
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)
#sorts the dictionary so it has a alphabetical order
sorted_dict = OrderedDict(sorted(d.items()))
print (sorted_dict)
И проблема, которую я столкнулся, когда пытаюсь напечатать словарь с именами и оценками от наивысшего до самого низкого - это то, что он будет либо печатать имя с наивысшим балл при использовании функции max
, либо если im использует itemgetter
, он, по-видимому, работает для самых низких до максимумов. Поэтому мне было интересно, сможет ли кто-нибудь помочь мне. Все, что ценится, объясните, если это возможно :)
@agconti: ОП не использует Django. – Kevin
не отредактируйте свой вопрос после ответа! Это вряд ли поможет помощнику следующего ... –