Python 分数分析代码
我们在两级词典中表示一系列比赛中击球手的得分,如下所示:Python 分数分析代码,python,python-3.x,Python,Python 3.x,我们在两级词典中表示一系列比赛中击球手的得分,如下所示: {'match1':{'player1':57, 'player2':38}, 'match2':{'player3':9, 'player1':42}, 'match3':{'player2':41, 'player4':63, 'player3':91} 每场比赛都由一个字符串标识,每个球员也是如此。分数都是整数。与比赛相关的名字不是固定的(这里是'match1'、'match2'、'match3'),球员的名字也不是固定的。球员不
{'match1':{'player1':57, 'player2':38}, 'match2':{'player3':9, 'player1':42}, 'match3':{'player2':41, 'player4':63, 'player3':91}
每场比赛都由一个字符串标识,每个球员也是如此。分数都是整数。与比赛相关的名字不是固定的(这里是'match1'、'match2'、'match3'),球员的名字也不是固定的。球员不需要在所有比赛中都记录分数
定义一个Python函数“orangecap(d)”,该函数读取这种形式的字典d并识别总分最高的玩家。函数应该返回一对(playername,topscore),其中playername是一个字符串,是得分最高的玩家的名字,topscore是一个整数,即playername的总分
输入将确保最高总分不会有任何联系
例如:
>>> orangecap({'match1':{'player1':57, 'player2':38}, 'match2':{'player3':9, 'player1':42}, 'match3':{'player2':41, 'player4':63, 'player3':91}})
('player3', 100)
>>> orangecap({'test1':{'Ashwin':84, 'Kohli':120}, 'test2':{'ashwin':59, 'Pujara':42}})
('Kohli', 120)
使用“get”方法返回默认值零,然后添加。像这样:
adict = {'match1':{'player1':57, 'player2':38},
'match2':{'player3':9, 'player1':42},
'match3':{'player2':41, 'player4':63, 'player3':91}}
def orangecap(dict1):
dict2 = {}
for k1 in dict1:
for k2 in dict1[k1]:
dict2[k2] = dict2.get(k2, 0) + dict1[k1][k2]
player = max(dict2, key=dict2.get)
return player, dict2[player]
print (orangecap(adict))
>>> adict = {'match1':{'player1':57, 'player2':38},
'match2':{'player3':9, 'player1':42},
'match3':{'player2':41, 'player4':63, 'player3':91}}
>>> print (orangecap(adict))
('player3', 100)
>>>
那么您到底面临什么问题呢?堆栈溢出不是一种代码压缩服务。如果你希望有人帮你做家庭作业,那你(希望)就倒霉了。相反,你应该试着自己解决这个问题。如果您遇到问题,请向我们描述,我们将很乐意帮助您找出问题所在以及如何解决问题。