Поиск по значению с итоговым выводом ключа Python

помогите, пожалуйста, разобраться новичку.

Задача состоит в том, чтобы взять значение (в нашем случаи город), сверить его со списком и в итоговом результате вернуть Федеральный округ. Когда в списке одна пара k v - все работает, но когда в списке ключ и несколько значений - ничего не работает. Буду рад Вашей помощи.

FederalDistrictst = {
    'Северо-Западный Федеральный Округ' :  'г. Санкт-Петербург',
    'Центральный Федеральный Округ' : {'г. Москва', 'Брянская область', 'Владимирская область'}
} 


region = 'г. Санкт-Петербург'
result=[] 
for keywords in FederalDistrictst.keys(): 
        if FederalDistrictst[keywords] == region: 
                result.append(keywords)
                for res in result:
                 print(res)

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

Автор решения: Edward Grachev

Через isinstance(value, set | list) проверяем что значение ключа итерируемый массив и проходимся по нему.

FederalDistrictst = {
        'Северо-Западный Федеральный Округ' :  'г. Санкт-Петербург',
        'Центральный Федеральный Округ' : {
            'г. Москва', 'Брянская область',
            'Владимирская область'
            }
    }
    
    
    region = 'Владимирская область'
    result=[]
    for key, value in FederalDistrictst.items():
        if isinstance(value, set | list):
            for city in value:
                if city.lower() == region.lower():
                    result.append(key)
                    break
        elif value.lower() == region.lower():
            result.append(value)
    print(result)
→ Ссылка
Автор решения: strawdog

воспользуйтесь оператором in:

res = [k for k, v in FederalDistrictst.items() if region in v][0]
print(res)

Северо-Западный Федеральный Округ

→ Ссылка