Python - Нахождение максимального значения во вложенном словаре - PullRequest
0 голосов
/ 20 марта 2020

Здравствуйте. Я новичок в Python и столкнулся с некоторыми проблемами при создании максимального значения из вложенного словаря.

Исходный дикт:

gradebooks = {'business analytics': {'Alice': 95, 'Troy': 92}, 'Python programming': {'James': 89, 'Charles': 100, 'Bryn': 69, 'Alice': 100}, 'R programming': {'Troy': 93, 'James': 100, 'Charles': 88}}

Новый дикт, который я хочу сгенерировать:

{'business analytics': 95, 'Python programming': 100, 'R programming': 100}

Я использовал следующий код, но не могу сгенерировать максимальное значение:

ISOM_gradebooks = {course: v for course, name in gradebooks.items() for key, v in name.items()}
print(ISOM_gradebooks)

Любые решения для этого, спасибо.

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Вы можете попробовать это, чтобы получить максимальные значения для каждой категории:

outputDict = {}

# This will loop on each key and value of your gradebooks dictionary
for k,v in gradebooks.items()
    maxVal = 0
    # This will loop over the grades of each student
    for grade in v.values():
        if grade > maxVal:
            maxVal = grade
    # Update your dictionary with the value of the maxVal of your subject k
    outputDict[k] = maxVal

Дайте мне знать, если это поможет!

0 голосов
/ 20 марта 2020
>>> {key: max(value.values()) for key, value in gradebooks.items()}
{'business analytics': 95, 'Python programming': 100, 'R programming': 100}
...