排名前10的Python清单
嗨,我一直在想如何按相反的顺序对列表进行排序,而列表中只有10项。我是一个非常初学者,仍在试图弄清楚清单是如何工作的。谢谢你的帮助排名前10的Python清单,python,list,Python,List,嗨,我一直在想如何按相反的顺序对列表进行排序,而列表中只有10项。我是一个非常初学者,仍在试图弄清楚清单是如何工作的。谢谢你的帮助 scoring = {"Name": "", "WinStreak": 0} leaderboard = [] count = 0 with open("testing2.txt", "r") as fileText: for line in fileText: name = line.split()[0] winning
scoring = {"Name": "", "WinStreak": 0}
leaderboard = []
count = 0
with open("testing2.txt", "r") as fileText:
for line in fileText:
name = line.split()[0]
winning = int(line.split()[2])
leaderboard.append({"Name": name, "WinStreak": winning})
for display in leaderboard:
print(display["Name"], "-", display["WinStreak"])
testing2.txt
实际产量
预期产量
我认为您正在寻找类似于:
for display in sorted(leaderboard, key=lambda x: x['WinStreak'], reverse=True)[:10]:
print(display["Name"], "-", display["WinStreak"])
要分解这一点:
按升序对列表进行排序。sorted
参数描述了每个列表项的排序依据。在这种情况下,我们希望按照每个玩家的键
值进行排序<代码>反向将排序更改为降序WinStreak
将结果分割为前10个元素[:10]
leaderboard = sorted(leaderboard, key=lambda itm: itm["WinStreak"], reverse = True)
下面是上述函数的工作原理-
sorted()
- 在key参数中,我们传递一个lambda函数,该函数将从排行榜中的每个键值对返回值(itm[“WinStreak”])
将按降序对其排序(默认情况下为升序)reverse=True
for display in leaderboard:
print(display["Name"], "-", display["WinStreak"])
这将为您提供所需的输出。希望这有帮助 它给我一个错误,声明“AttributeError:'list'对象没有属性'items'”
for display in sorted(leaderboard, key=lambda x: x['WinStreak'], reverse=True)[:10]:
print(display["Name"], "-", display["WinStreak"])
leaderboard = sorted(leaderboard, key=lambda itm: itm["WinStreak"], reverse = True)
for display in leaderboard:
print(display["Name"], "-", display["WinStreak"])