2013-10-26 85 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()