2016-03-28 60 views
0

我正在python中構造一個高分表。 它是一個元組,每個輸入都是名稱+分數。Python按整數排序元組

例如:

Highscore = [(1000,"Carl"), (945,"Eric"), (883,"Beta"), (823,"Alpha")] 

當有人得到一個更好的成績,我想增加他們的分數和名稱:

Highscore = [(1000,"Carl"), (945,"Eric"), (883,"Beta"), (823,"Alpha"),(NEWSCORE),(NEWNAME)] 

在排序這麼得分最高的是在頂部。這是發生錯誤,而不是由最高得分排序輸出...

從來就試圖Highscore.sort(reverse=True)sorted(Highscore,key=lambda tup: tup[1])

Highscore.sort各種字母順序排序,並給了我以下錯誤:TypeError: unorderable types: tuple() < list()

+0

'sort(Highscore,reverse = True,key = lambda tup:tup [0])'適合我。 – BallpointBen

+1

您確定要添加_tuple_而不是_list_嗎? – alf

+1

難道你不想要'(NEWSCORE,NEWNAME)'而不是'(NEWSCORE),(NEWNAME)'? – DaveBensonPhillips

回答

3

您沒有將元組添加到您的高分列表,而是一個列表。嘗試一個元組添加到Highscore和排序然後:

Highscore = [(1000,"Carl"), (945,"Eric"), (883,"Beta"), (823,"Alpha")] 
Highscore.append((score, name)) 
Highscore.sort(reverse=True) 
0

我認爲這個問題是你需要添加新的值作爲一個元組。

你有什麼:

Highscore.append((NEWSCORE),(NEWNAME)) 

你應該有什麼:

Highscore.append((NEWSCORE, NEWNAME)) 

如果你這樣做,Highscore.sort(reverse=True)應該做的伎倆。