Функция поиска по значению

Все привет, вопрос уровня child) подскажите, пожалуйста как написать функцию которая будет возвращать значение если внутри есть необходимый ключ? то есть необходима функция которая вернет "Aeroflot если ее вызвать так main(res, 'SU') структура такая:

res = {
    "flights": {
        "Sig": {
            "operating_carrier": "S7",
        },
        "Aeroflot": {
            "operating_carrier": "SU",
        },
        "Pobeda": {
            "operating_carrier": "DP",
        }
    }
}


def main(res, key):
    return id

print(main(res, "SU"))

вывод "Aeroflot"


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

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

Передаем два аргумента: сам словарь res и наш ключ key по которому будем искать. Ищем в словаре res значение по ключу key, сравниваем его со значением ключа operating_carrier во вложенных словарях внутри res. Если находим соответствие, возвращаем соответствующий ключ из словаря res["flights"], если мы ничего не найдём, то возвращаем None или что-то другое при желании(Пример,заменить: None -> "ошибка").

res = {
    "flights": {
        "Sig": {
            "operating_carrier": "S7",
        },
        "Aeroflot": {
            "operating_carrier": "SU",
        },
        "Pobeda": {
            "operating_carrier": "DP",
        }
    }
}

def main(res, key):
    return next((k for k, v in res["flights"].items() if v["operating_carrier"] == key), None)

print(main(res, "SU"))  
→ Ссылка