@Guerro69

Как отсортировать два числа в списке?

Есть такой код, где я пытался сам это реализовать:
hours = ['0', '3', '2', '7']
minutes = ['23', '9', '16', '10']
time = ''
for i, n in enumerate(sorted(zip(minutes, hours), key=lambda n: int(n[0:2]), reverse=True), 1):
    time += f"{i}. Время: {n[1]}ч {n[0]}м\n"
print(time)

Выходит как не удивительно ошибка:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'

Суть такая, что мне нужно отсортировать и часы и минуты.
Изначально у меня было отсортировано только по минутам и было вот так:
"1. Время: 0ч 23м
2. Время: 2ч 16м
3. Время: 7ч 10м
4. Время: 3ч 9м"

А нужно отсортировать как то и часы и минуты, чтобы получить вот это:
"1. Время: 7ч 10м
2. Время: 3ч 9м
3. Время: 2ч 16м
4. Время: 0ч 23м"
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
import datetime
for i, n in enumerate(sorted(zip(hours, minutes), key=lambda n: datetime.time(int(n[0]), int(n[1])), reverse=True)):
   print(f"{i}. Время: {n[0]}ч {n[1]}м")


0. Время: 7ч 10м
1. Время: 3ч 9м
2. Время: 2ч 16м
3. Время: 0ч 23м
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы