Как по ключу вложенного словаря вернуть значение основного?

Прошу немного помощи при работе со словарями. Есть словарь.

{'B': {'old': 60691.96, 'now': 61928.03, 'change': 2.04}, 'E': {'old': 4418.98, 'now': 4605.43, 'change': 4.22}, 'D': {'old': 188.5, 'now': 192.49, 'change': 2.12}}
max_percent = 4.22

for xer in global_dict.values():
    if xer['change'] == max_percent:
        print(xer)
        break
    else:
        continue

Вывод

{'old': 4418.98, 'now': 4605.43, 'change': 4.22}

Мне нужно, чтобы ключ возвращался вместе с вложенным словарем. То есть.

{'E': {'old': 4418.98, 'now': 4605.43, 'change': 4.22}}

Проблема в том, что для поиска ключа, нужно сначала обратиться к элементам значения, сравнить с 4.22, а потом по этому значению вложенного ключа в 'change', вернуть значение словаря, в котором такое значение.


Ответы (1 шт):

Автор решения: Zhihar

в цикле вместо values() используйте items(), который содержит информацию и о ключе и о значении, а не только о значении

global_dict = {'B': {'old': 60691.96, 'now': 61928.03, 'change': 2.04}, 'E': {'old': 4418.98, 'now': 4605.43, 'change': 4.22}, 'D': {'old': 188.5, 'now': 192.49, 'change': 2.12}}
max_percent = 4.22

for xer in global_dict.items():
    if xer[1]['change'] == max_percent:
        print(xer)
        break
→ Ссылка