2024-05-20 01:52:03 发布
网友
我想写一个程序,可以打印出得分最高的队伍,然后是得分第二高的队伍,然后是第三队伍
WorldCup=[ {name:"Spain", points:9}, {name:"Portugal",points:7}, {name:"Iran",points:6} ]
我的意思是我想把这个列表放到一个forloop中,然后得到这个输出:
forloop
Spain Portugal Iran
我不确定这在列表中是否可行,但如果你能以任何可能的方式解决它,那也没关系
您必须按points对数据进行排序,并仅打印其name
points
name
worldCup = [{'name':"Spain", 'points':9},{'name':"Portugal",'points':7},{'name':"Iran",'points':6}] for item in sorted(worldCup, key=lambda x:x['points'], reverse=True): print(item['name'])
您的列表已按points从高到低排序。列表是有序的,所以在迭代时可以依靠它来维持顺序
因此,您可以在这个for循环中打印您的姓名:
for
for team in WorldCup: print(team['name'])
然而,我假设这只是一种运气,你想要处理任何可能的团队排序。如果是这样,我们可以使用^{}和reverse=True按降序对团队进行排序
reverse=True
对于排序key,与其他答案类似,我们可以使用^{}。使用itemgetter而不是lambda通常稍快一些,如本answer所示
key
itemgetter
lambda
from operator import itemgetter WorldCup = [ {'name':"Spain", 'points':9}, {'name':"Portugal",'points':7}, {'name':"Iran",'points':6} ] sorted_teams_desc = sorted(WorldCup, key=itemgetter('points'), reverse=True) for team in sorted_teams_desc: print(team['name'])
输出:
给你:
WorldCup=[ {'name':"Spain", 'points':9}, {'name':"Portugal",'points':7}, {'name':"Iran",'points':6} ] for team in sorted(WorldCup, key=lambda team: team['points'], reverse=True): print(team['name'])
您必须按
points
对数据进行排序,并仅打印其name
您的列表已按
points
从高到低排序。列表是有序的,所以在迭代时可以依靠它来维持顺序因此,您可以在这个
for
循环中打印您的姓名:然而,我假设这只是一种运气,你想要处理任何可能的团队排序。如果是这样,我们可以使用^{} 和
reverse=True
按降序对团队进行排序对于排序} 。使用
key
,与其他答案类似,我们可以使用^{itemgetter
而不是lambda
通常稍快一些,如本answer所示输出:
给你:
输出:
相关问题 更多 >
编程相关推荐