@Guerro69

Как объединить имена с отсортированными числами?

Есть вот такой код:
numbers = ['324', '1002', '6', '921']
users = ['Дмитрий', 'Анатолий', 'Василий', 'Никита']
# То есть, у Дмитрия число 324, у Анатолия 1002 и т. д.

top = '\n'.join([ f"{i + 1}. {users[i]} {b}" for i, b in enumerate(sorted(map(int, numbers), reverse=True)) ])
print(f"Топ пользователей:\n\n{top}")

В итоге, как ожидаемо, я получаю следующее:
1. Дмитрий 1002
2. Анатолий 921
3. Василий 324
4. Никита 6

А нужно получить вот так:
1. Анатолий 1002
2. Никита 921
3. Дмитрий 324
4. Василий 6
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
0xD34F
@0xD34F
sortedData = sorted(zip(numbers, users), key=lambda n: int(n[0]), reverse=True)
print('\n'.join(f'{i}. {n[0]} {n[1]}' for i, n in enumerate(sortedData, 1)))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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