Сортировка моего списка по часам и печать таблицы,

Я чувствую, что я так близок к ответу, но, попробовав различные методы, предложенные по аналогичной проблеме на этом сайте, я не ближе к ответу.

Я пометил в фактическом назначении то, что я заимствовал здесь (так что я не случайно краду код), но удалил его здесь, чтобы было легче читать. То, что я хочу сделать, это сохранить мои три функции (которые берут ввод, удаляют двоеточие, а затем печатают отсортированную таблицу из списка, то есть:

"Введите время для следующего назначения (как hh: mm): 17:30 Введите краткое описание: COSC1306

Назначение в 17:30 COSC 1306 "

Это то, что у меня есть:

alpha = []
while len(alpha) >= 0: 
 gamma = input("Enter time for your next appointment (as hh:mm): ")
 (h, m) = gamma.split(':')
 result = str(h) + str(m)
 delta = input("Enter a short description: ")
 alpha.append([result, delta])
 sorted(alpha)
 for table in alpha:
 print("Appointment at %s %s" %(table[0],", ".join(map(str,table[1:]))))

Я хочу, чтобы таблица сортировалась по тому, что "время" назначается, а не только в том порядке, в котором я его набрал. Есть ли кто-нибудь, кто мог бы мне помочь?

2 ответа

Попробуй это:

print(alpha)
sorted(alpha)
print(alpha)

Обратите внимание, что альфа не изменяется. sorted возвращает новый список, который немедленно отбрасывается. Если вы хотите сортировать на месте, сделайте

alpha.sort()


Я думаю, что замена sorted(alpha) следующей работы должна работать:

alpha = sorted(alpha, key=lambda x: (x[0]))

licensed under cc by-sa 3.0 with attribution.