Я создаю игру, и я бы хотел распечатать пользовательские баллы от наивысшего до самого низкого.Сортировка словаря/списка по значению
Это мой код до сих пор
player_scores = {}
for line in reversed(open("playerscores.txt").readlines()):
name, score = line.rstrip('\n').split('/')
score = int(score)
if name in player_scores and len(player_scores[name]) < 3:
player_scores[name].append(score)
if name not in user_scores:
player_scores[name] = list((score,))
Имена в playerscores.txt сохраняются как:
Bob/10
Jill/10
Мой код занимает последние 3 баллов от пользователя (последние 3 жизни) и использует это как основа. Мне нужно печатать имена пользователей вместе с наивысшими баллами до самого низкого уровня.
Решения на Sort a Python dictionary by value не работают. В конечном итоге я получаю такие результаты, как:
[('Alex', [1]), ('Joeseph', [32, 576]), ('Steve', [33]), ('Bob', [55, 22])]
которые не сортируются.
Вы можете указать пример playersscores.txt – The6thSense
Возможный дубликат слова [Сортировка словаря Python по значению] (http://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value) –
@AmiTavory Да, это дубликат. Sui21245 перейдите по ссылке и посмотрите на ответ Роберто Бонвалле «от оператора import itemgetter sorted (d.items(), key = itemgetter (1))' – Leb