Поиск по значению с итоговым выводом ключа 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)
Северо-Западный Федеральный Округ