更新...:已解决!我正在编写一个代码,它将采用联盟的大小、球队名称和比赛摘要前两个数字将分配给球队名称,另一半是比赛结果:例如:3 1 3 3将解释为列表中的第三支球队VS第一支球队,结果为3:3
代码如下:
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)编辑器不让我在这里粘贴输出,但如果您运行代码,您就会明白我的意思。
正如你所看到的,团队积分和目标差异是有排序的,但我不知道如何对团队名称进行排序,以便与他们的实际点数对齐……
更新:最终解决了这个问题--如果有人感兴趣,请参阅上面的更新代码。
发布于 2021-09-19 04:33:43
您可以使用dict()作为地图来记录给定团队的点数和目标差异。例如,关键字可以是团队字符串,值也可以是关键字为teampoints和diff的字典。这样,在计算团队点数和差值后,您可以打印结果,如下所示:
for key, value in result.items():
print(key + ": teampoints: " + value.get("teampoints") + " | diff: " value.get("diff"))https://stackoverflow.com/questions/69240220
复制相似问题