使用字典的python程序
我们在两级词典中表示一系列比赛中击球手的得分,如下所示:使用字典的python程序,python,dictionary,Python,Dictionary,我们在两级词典中表示一系列比赛中击球手的得分,如下所示: { 'match1':{ 'player1':57, 'player2':38 }, 'match2':{ 'player3':9, 'player1':42 }, 'match3':{ 'player2':41,
{
'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)
如何用python编写程序?试试以下方法:
def orangecap(match_details):
players_data = {}
for k, v in match_details.iteritems():
for player_name, score in v.iteritems():
prev_player = player_name
if prev_player == player_name:
score = players_data.get(player_name, 0) + score
players_data[player_name] = score
high_score_player = max(players_data, key=lambda i: players_data[i])
print (str(high_score_player), players_data[high_score_player])
请展示您迄今为止所做的尝试;第二步:用Python编写此程序;第三步:???步骤N:利润!def orangecap(d):总计=0表示在[“player1”、“player2”、“player3”、“player4”、“ashwin”、“kohli”、“pujara”]:用于d中的匹配。键():如果在d中有n[match]。键():总计[n]=总计[n]+d[total][n]返回(总计)。我做了这么多,只是我不知道如何继续它的显示错误:回溯(最后一次调用):\n文件“test.py”,第48行,在\n打印中(orangecap(arg),end=“”)\n文件“test.py”,第3行,在orangecap中\n为k,在匹配\u详细信息中为v。iteritems():\n AttributeError:'dict'对象没有属性'iteritems',我已尝试使用python2.7版本,但在我的系统中工作正常。检查你的python版本。我正在使用python3。编译程序后,我输入以下内容:orangecap({'match1':{'player1':57,'player2':38},'match2':{'player3':9,'player1':42},'match3':{'player2':41,'player4':63,'player3':91})('player3',100)。谢谢你的支持,但是我得到了额外的输出,我不知道如何处理。请帮助:输入orangecap({'match1':{'player1':57,'player2':38},'match2':{'player3':9,'player1':42},'match3':{'player2':41,'player4':63,'player3':91})预期输出:('player3',100)实际输出:player3 100\n无