python - 一个程序来排序球员的分数,按降序显示他们的分数
问题描述
position = []
name = []
all_marks =[]
total_players = int(input("Insert number of players: "))
for x in range(total_players):
player_name = input("Player name: ")
print("Player ",x+1," name:",player_name)
position.append(int(x+1))
name.append(player_name)
index_name = list((position[x],name[x]) for x in range(total_players))
print(index_name)
for x in range(total_players):
print("For player ",name[x], )
marks = input("Insert your marks: ")
all_marks.append(marks)
marks_name = list((all_marks[x],name[x]) for x in range(total_players))
marks_name.sort(key=lambda mn: mn[0], reverse = True)
print("Ranking",marks_name)
打印标记时,它是基于玩家标记的,也就是说mn[0]
,标记将按相反的顺序排序,因为我已经说过reverse = True
了,但是,打印的顺序要么不是所需的相反顺序,要么是出乎意料的随机顺序。我试过把
sorted(marks_name(key=lambda mn:mn[0], reverse = True))
但是它也不起作用,我错过了什么吗?
解决方案
您将标记作为字符串,当您尝试对其进行排序时,它会按字母顺序排序。以标记为int
marks = int(input("Insert your marks: "))
推荐阅读
- python - 按最小顺序进行深度优先搜索
- c# - 有没有办法在实体框架中使用来自不同实体的多个过滤器参数?
- java - Java - 使用 Salt 值解码 Base64
- openstreetmap - Osm 制图道路宽度系数
- react-native - Talkback on Flatlist 宣布列表中的第一项
- java - 基于百分比的路由算法
- mysql - MySQL,WHERE 子句中的 IF 语句?
- android - 替换以(最好不使用 sed)开头的字符串
- javascript - jQuery DataTables - 调用多个插件?(日期范围/范围搜索)
- python - 马修特征值