@sunsexsurf
IT & creative

Как организовать поиск по значениям словарей?

Имеем словарь:
cities= {
        'г. Москва':
    ['Москва', 'Moscow', 'Moscow > Moskva', 'г. Москва', 'г.Москва', 'Moskva (Moscow)'],
         'г. Калиниград':
    ['Калининград', 'г.Калининград', 'Kaliningrad (Konigsberg)']
         }

для удобства доступа к cities:
cv = cities.values()
ck = cities.keys()


имеем список:
adreses_alforder = [('Moscow > Moskva, ул. xxx, д. xxx' , 'Moscow > Moskva, ул. xxx, д. xxx'), ('Kaliningrad (Konigsberg), ' , 'Kaliningrad (Konigsberg), ')]


пишу:
for i in adreses_alforder:
    x = i[0].split(',') #взять первый элемент в каждом адресе и разделить адрес по запятым
    print(x[0])

тут все, естественно ок.
но если
for i in adreses_alforder:
    x = i[0].split(',') #беру первый элемент внутри i и разбиваю по запятой
    xr = x[0] #здесь я беру первый элемент внутри переменной Х - город
    if xr in cv():
        print(x)

то все перестает работать ((

задача: взять город (нулевой элемент в Х), проверить его по values в словаре cities и вернуть соответствующий key

Заранее спасибо.
  • Вопрос задан
  • 280 просмотров
Решения вопроса 3
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Оно?
cities= {
    'г. Москва': [
        'Москва', 'Moscow', 'Moscow > Moskva', 'г. Москва', 'г.Москва', 'Moskva (Moscow)'
    ],
    'г. Калиниград': [
        'Калининград', 'г.Калининград', 'Kaliningrad (Konigsberg)'
    ]
}

addresses_folder = [
    ('Moscow > Moskva, ул. xxx, д. xxx' , 'Moscow > Moskva, ул. xxx, д. xxx'), 
    ('Kaliningrad (Konigsberg), ' , 'Kaliningrad (Konigsberg), ')
]


for address in addresses_folder:
    address_city = address[0].split(',')[0]
    for city, values in cities.items():
        if address_city in values:
            print(city)

Outp:
г. Москва
г. Калиниград
Ответ написан
solotony
@solotony
покоряю пик Балмера
надо по "значению" найти ключ ?

реверсируйте словарь.
Ответ написан
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
может,
if xr in cv():
        print(x)


Вот если бы именовали переменные внятно - address, town, ну и т.п. - было бы виднее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы