从最高到最低排序多个列表中的整数

时间:2017-03-14 13:26:51

标签: python python-3.x

我有一个这种格式的列表:名字,姓氏,胜利,损失

亚历克斯,KOP,5,6-

derex,拖把,0,11

SAS,热,11,0

丰富,约翰,2,9-

杰里米,甘蔗,1,10-

我的程序显示来自排行榜的文本文件中的数据,仅显示已经赢得至少1场比赛的玩家,然后通过将他们的胜数乘以3来计算他们的积分。这是我的代码。

def points():

template = "|{0:<30}|{1:<30}|{2:<30}|{3:<30}|{4:<30}"
header = template.format("1st name: ","2nd Name: ", "won: ", "lost: ","points: ")

print(header)

with open(r'prac2.txt', 'r') as file:

    for line in file:

        data = line.strip().split(',')

        if int(data[2]) >= 1:

            points = int(data[2]) * 3

            data.append(points)

            print(template.format(*data),'\n')

我想将排行榜从最高点数量排列到最低点,但我不知道如何。

1 个答案:

答案 0 :(得分:1)

您可以将内置sorted与自定义键功能一起使用:

sorted(players, key=lambda player: player.wins * 3 + player.draws)

PS:你应该保存抽奖,如果它们可以发生;)