我正在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 :(得分:3)
您没有在高分榜中添加元组,而是列表。尝试将一个元组添加到Highscore
然后排序:
Highscore = [(1000,"Carl"), (945,"Eric"), (883,"Beta"), (823,"Alpha")]
Highscore.append((score, name))
Highscore.sort(reverse=True)
答案 1 :(得分:0)
我认为问题在于您需要将新值添加为单个元组。
你有什么:
Highscore.append((NEWSCORE),(NEWNAME))
你应该拥有什么:
Highscore.append((NEWSCORE, NEWNAME))
如果你这样做,Highscore.sort(reverse=True)
应该可以做到。