我有一个这种格式的列表:名字,姓氏,胜利,损失
亚历克斯,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')
我想将排行榜从最高点数量排列到最低点,但我不知道如何。
答案 0 :(得分:1)
您可以将内置sorted
与自定义键功能一起使用:
sorted(players, key=lambda player: player.wins * 3 + player.draws)
PS:你应该保存抽奖,如果它们可以发生;)