首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对足球联赛列表排序

对足球联赛列表排序
EN

Stack Overflow用户
提问于 2021-09-19 04:13:33
回答 1查看 57关注 0票数 0

更新...:已解决!我正在编写一个代码,它将采用联盟的大小、球队名称和比赛摘要前两个数字将分配给球队名称,另一半是比赛结果:例如:3 1 3 3将解释为列表中的第三支球队VS第一支球队,结果为3:3

代码如下:

代码语言:javascript
复制
diff=[]
teams=[]
summary=[]
teampoints=[]
leaguesize=int(input("number of teams"))
for i in range(leaguesize):
 teams.append(input("enter team names:\n "))
 teampoints+=[0]
 diff+=[0]
numberofgames=int(input("how many games:"))
for i in range(numberofgames):
 summary.append(list(map(int,input().strip().split(" "))))
for i in range(len(summary)):
 diff[summary[i][0] - 1] += summary[i][2] - summary[i][3]
 diff[summary[i][1] - 1] += summary[i][3] - summary[i][2]
 if summary[i][2] > summary[i][3]:
    teampoints[summary[i][0] - 1]+=3
 elif summary[i][2] < summary[i][3]:
    teampoints[summary[i][1] - 1]+=3
 else:
    teampoints[summary[i][0] - 1]+=1
    teampoints[summary[i][1] - 1]+=1

leaguedictornary=dict(zip(teams, zip(teampoints, diff)))
sorted_by_val = {k: b for k, b in sorted(leaguedictornary.items(), 
key=lambda element: element[1], reverse=True)}
print(sorted_by_val)

编辑器不让我在这里粘贴输出,但如果您运行代码,您就会明白我的意思。

正如你所看到的,团队积分和目标差异是有排序的,但我不知道如何对团队名称进行排序,以便与他们的实际点数对齐……

更新:最终解决了这个问题--如果有人感兴趣,请参阅上面的更新代码。

EN

回答 1

Stack Overflow用户

发布于 2021-09-19 04:33:43

您可以使用dict()作为地图来记录给定团队的点数和目标差异。例如,关键字可以是团队字符串,值也可以是关键字为teampointsdiff的字典。这样,在计算团队点数和差值后,您可以打印结果,如下所示:

代码语言:javascript
复制
for key, value in result.items():
    print(key + ": teampoints: " + value.get("teampoints") + " | diff: " value.get("diff"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69240220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档