2013-10-26 116 views
-2

我觉得自己与答案非常接近,但是在尝试了在本网站上针对类似问题建议的各种方法之后,我并没有接近答案。按小时排列我的列表并打印一张表,

我已经在实际任务中标记了我从这里借用的内容(所以我不会意外地窃取代码),但在此处将其删除以便于阅读。我要做的是保留我的三个功能(即接受输入,去掉冒号,然后从列表中打印排序表,即:

“输入下次约会的时间(如hh :毫米):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:])))) 

我希望按照约会的“时间”对表格进行排序,而不是按照我输入的顺序排序。有没有人可以帮助我呢?

+0

好吧,我试图修复它了一下。我清理它到这里: '阿尔法= [] 而LEN(阿尔法)> = 0: 伽马=输入( “(输入时间为下一个约会为hh:mm):”) ,δ=输入( “输入一个简短的描述:”) alpha.append([gamma,delta]) sorted.alpha [0]' 但打印它排序在表格格式没有工作任何方式我排序它,所以我想知道如果这是我需要重新访问的代码...对不起你们所有的人。我讨厌自己作为newb的缩影。 – Moonkat09

回答

0

我想用下面的更换sorted(alpha)应该工作:

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

元组/列表的列表已经按第一个成员排序。 – roippi

+0

正确,所以无论是你提到的'alpha.sort()'还是'alpha = sorted(alpha)'都可以。 – Furbeenator

0

试试这个:

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

注意,阿尔法是不变的。 sorted返回一个NEW列表,该列表立即被丢弃。如果你想在原地排序,那么

alpha.sort()