我是Python的新手,我正在尝试为游戏制作计算器。我想在列表(字典中的值)与最大值所来自的键之间的特定索引处获取最大整数。

我试图遍历字典。

raw_player_score = {'Matt' : [3, 5, 5, 4, 6, 9],
                    'Kyle' : [6, 9, 11, 5, 4, 3],
                    'Emily' : [4, 4, 5, 2, 1, 5]}

def extra_points(dict):
    for k, v in dict.items():
        for number in v:
            apple_king = max(v[1])
            print(apple_king)

final_dict = extra_points(raw_player_score)


我希望结果是9,因为凯文在索引1处的数字最高,但是相反,我得到的消息是“'int'对象不可迭代”

最佳答案

其他答案中的所有建议都是正确的。我将提供一个更简单的老式解决方案,该解决方案可以完成最少的工作,而无需创建任何其他列表或进行任何排序。我认为,作为一个新的Python程序员,最直接,最透明的方法可能会为您提供最好的服务:

raw_player_scores = {'Matt' : [3, 5, 5, 4, 6, 9],
                    'Kyle' : [6, 9, 11, 5, 4, 3,],
                    'Emily' : [4, 4, 5, 2, 1, 5]}

def extra_points(scores, pos):
    max_score = 0
    max_key = None
    for k, v in scores.items():
        if v[pos] > max_score:
            max_score = v[pos]
            max_key = k
    return max_key

max_key = extra_points(raw_player_scores, 1)
print(max_key)


结果:

Kyle

10-02 09:47