python-3.x - 如何使用 python 列出参加比赛的赛车手的姓名、时间和位置?
问题描述
基本上,我必须为 4 个组创建一个参与者列表(我想对组进行排序),记录他们的时间和他们在比赛中的排名,并生成一个格式整齐的结果表。
我试过使用
racers = [(i, l[i]) for i in l]
places = sorted(racers, key = lambda i: int(i[1]))
print('1st Place: {}'.format(places[0][0]))
print('2nd Place: {}'.format(places[1][0]))
print('3rd Place: {}'.format(places[2][0]))
这是我当前的代码:
l = []
a = int(input("Enter the amount of racers for Anstey: "))
g = int(input("Enter the amount of racers for Gordon: "))
h = int(input("Enter the amount of racers for Helps: "))
r = int(input("Enter the amount of racers for Rawle: "))
total_racers = a+g+h+r
print("Total Racers:",total_racers)
for i in range(total_racers):
racer_name = (input("Participant Name: "))
racer_time = int(input("Participant Time: "))
time_name = racer_time,racer_name
l.append(time_name)
print('\n',*l, sep='\n')
解决方案
l
已经是一个列表,您不需要创建另一个列表来racers
进行排序。如果你愿意,你可以分配racers = l
time_name
是形式(racer_time, racer_name)
,key
要排序的应该是i[0]
,racer_time
你现在使用i[1]
( racer_name
) 来排序
racers = l
sorted(l, key = lambda i: i[0])
或者你应该交换 and 的位置racer_time
,racer_name
例如time_name = racer_name,racer_time
,因为我认为你想racer_name
在最后打印,但places[0][0]
实际上是racer_time
推荐阅读
- reactjs - React Native 如何设置启动声音
- sql - SQL:将行插入一个表中的多个值
- java - 在heroku中部署一个带有资源文件的jar文件
- excel - 用颜色高亮 3*3 块对角单元格
- python - 'If not' 避免零除法
- python - 多类别情况下最后一个密集输出层的单位
- python - 使用 Regex 将大写缩写替换为相同字母但添加标点符号和空格
- asp.net - ASP.NET 网站 (WSP) - 预编译 - 如何使用备用文件夹
- node.js - GraphQL 错误:Shopify 上的订单访问被拒绝
- python - pyModbus 中的自定义数据块示例