как собрать вывод в один словарь?
letters = {'а': 1, 'б': 2, 'в': 3, 'г': 4, 'д': 5, 'е': 6, 'ё': 7, 'ж': 8, 'з': 9,
'и': 1, 'й': 2, 'к': 3, 'л': 4, 'м': 5, 'н': 6, 'о': 7, 'п': 8, 'р': 9,
'с': 1, 'т': 2, 'у': 3, 'ф': 4, 'х': 5, 'ц': 6, 'ч': 7, 'ш': 8, 'щ': 9,
'ъ': 1, 'ы': 2, 'ь': 3, 'э': 4, 'ю': 5, 'я': 6}
name = str.casefold(input("Введите запрос:")) # например Пётр
for i, letter in enumerate(name):
if letter in letters.keys():
new_letter = list()
new_letter.append(letters[letter])
print(new_letter, end='')
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
Проходимся по каждой букве в словаре str и проверяем есть ли она в словаре letters и берем значение по ключу.
letters = {'а': 1, 'б': 2, 'в': 3, 'г': 4, 'д': 5, 'е': 6, 'ё': 7, 'ж': 8, 'з': 9,
'и': 1, 'й': 2, 'к': 3, 'л': 4, 'м': 5, 'н': 6, 'о': 7, 'п': 8, 'р': 9,
'с': 1, 'т': 2, 'у': 3, 'ф': 4, 'х': 5, 'ц': 6, 'ч': 7, 'ш': 8, 'щ': 9,
'ъ': 1, 'ы': 2, 'ь': 3, 'э': 4, 'ю': 5, 'я': 6}
str = input() # "Пётр"
print(list(map(lambda x: letters[x.casefold()], str))) # [8, 7, 2, 9]
Автор решения: TigerTV.ru
→ Ссылка
Можно так решить:
alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
letters = {c: i % 9 + 1 for i,c in enumerate(alphabet)}
s = input("Введите запрос: ").casefold() # Пётр
res = [letters[c] for c in s]
print(res) # [8, 7, 2, 9]