@Ozrae

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

Находил решение в интернете, но подстроить под мой случай не смог, получаю ошибки. Вот мой гавнокод:

a = input().split()   # Нужно вводить строки через пробел: a ab abc aab
n = int(input())  # Вводим одно число
index = []
for s in a:
    index.append([s.find(c) for c in s])
print(index)  # Выводит вложенные списки вида [[a,b,c], [d,e,f]]
dict_ = dict(zip(a, index))
print(dict_)  # Превращает вложенный список в словарь вида {'a': [a,b,c], 'b': [d,e,f]}


temp = []
count = 0
lst = []
while n != 0:
    word = input().split()
    for s in word:
        lst = [s.find(ss) for ss in s]
        print(lst)  # Циклически выводит списки: [a,b,c]
        n -= 1


Код разделен на две части, первая часть создает словарь, а вторая просит вводить строки, которые нужно вводить по очереди. Дальше не реализовал, но после каждого ввода программа должна сравнивать её со значениями словаря и при совпадении поместить ключ этого значения в переменную и распечатать её, а если не совпадает, то запрашивает вводить еще, пока не закончатся попытки, указанные в переменной n. Пожалуйста, помогите дописать эти несколько строчек в последнем цикле.
  • Вопрос задан
  • 3376 просмотров
Решения вопроса 1
@o5a
Если цель - найти ключ словаря по совпадению значения, то можно так:

dict_ #наш словарь
user_list # введенный пользователем список (учитываем, что в словарь запихнули цифры, а пользователь вводит строки, т.е. нужно будет преобразовать
# находим массив ключей с совпадающим значением
result = [key for key, value in dict_.items() if value == user_list]

# просто проверка, есть ли наш список среди значений
if user_list in dict_.values():
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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