@DF0rig
clay

Как правильно отсортировать вторые аргументы строки?

Я собираю информацию о пользователях, и через цикл я получил их "баланс":
for user in data:
	with open('user_money.json', 'r') as file:
		capitals_json = file.read()
	capitals = json.loads(capitals_json)
	user_balance = capitals[user]["balance"]
	reward += f"{user}: {user_balance}\n"

Вот то, что я получаю при просмотре переменной reward:
user1: 56
user2: 239
user3: 192
user4: 1010
user5: 12

Как мне реализовать команду "топ игроков"?
Мне нужно отсортировать вторые аргументы новых строк (В одной переменной), не теряя первые аргументы. На выходе строка должна выглядеть так:
user4: 1010
user2: 239
user3: 192
user1: 56
user5: 12
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@DF0rig Автор вопроса
clay
rees = ' '.join(sorted(reward.split("\n"), key=lambda x: int(re.sub(r'.*?(\d+).*', r'\1', x+'_99999'))))
		rese = str(rees).split("%")#.reverse())	
		grig = "\n".join(rese)
		
		daeta = grig.replace("\n ", '\n')
		data = daeta.replace("\n ", '\n')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
Это сортировка словаря по значениям + опция обратный порядок
new1=sorted(reward.items(), key=lambda x: x[1], reverse=True)
[('user4', 1010), ('user2', 239), ('user3', 192), ('user1', 56), ('user5', 12)]

Читай про python dictionary sort by values
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы