2016-12-22 87 views
0

試圖對列表進行排序,但將連接保留到另一個列表。做了一些閱讀並找到了zip函數,但我想按照年齡或名稱的降序對列表進行排序。排序列表參考以降序排列

names = ["Ged","Ethan","Sam","Paul"] 
ages = [15,9,12,19] 
list(zip(names,ages)) 
for i,j in sorted(zip(names,ages),reverse=True): 
    print(i,j) 

我似乎無法得到它的休息。請幫忙嗎?

+2

拉鍊(年齡,姓名)而不是(姓名,年齡)? – Amber

+0

可能重複[2列表到分類詞典回到2列表(多個鍵值)](http://stackoverflow.com/questions/31457548/2-lists-to-sorted-dictionary-back-to-2-lists -multiple-鍵值) – Prune

回答

2

只需添加一個key函數返回顛倒元組爲準則:

for i,j in sorted(zip(names,ages),reverse=True,key=lambda x : x[::-1]): 
    print(i,j) 

所以年齡取考慮,然後再名稱(如果同年齡),不僅僅是lambda x : x[1]這不更好取的名字考慮在所有

另一個簡單的辦法是恢復領域的那麼自然排序標準工作:

for i,j in sorted(zip(ages,names),reverse=True): 
    print(j,i)