Почему итерация через l oop не работает - PullRequest
0 голосов
/ 28 мая 2020

У меня вопрос. Я пытаюсь выполнить упражнение, в котором я ввожу 1,2,3, а результат будет: One, Two Three. Следующий код не работает. Мой лог c - это ввести числа, 1,2,3, а затем запустить для l oop через ввод. Большое вам спасибо!

phone = input("Phone")
digitmap = {
    1: "One",
    2: "Two",
    3: "Three",
    4: "Four"
}
for i in phone:
  output = digitmap[i]
  print(output)

1 Ответ

0 голосов
/ 28 мая 2020

Во-первых, вам нужно убедиться, что ваш ввод - это список int, который нужно искать в вашем словаре. Итак, мы сначала объявляем phone как список, а затем заполняем его, используя метод ниже:

[int(x) for x in input("Phone\n").split(',')]

Тогда может получиться словарь, который не работает. Возможно, ваш digitmap выглядит так:

digitmap = {
    3: "Three",
    4: "Four",
    1: "One",
    2: "Two"
}

В этот момент ссылка на индекс не будет работать. Вместо этого мы должны использовать метод dict.get(), который возвращает значение для ключа в хэш-карте

phone = []
# https://www.geeksforgeeks.org/python-program-to-input-a-comma-separated-string/
phone = [int(x) for x in input("Phone\n").split(',')] 
digitmap = {
    1: "One",
    2: "Two",
    3: "Three",
    4: "Four"
}
for i in phone:
  output = digitmap.get(i)
  print(output)

Выглядит так:

C:\Users\wundermahn\Desktop>python stack_example.py
Phone
1,2,3
One
Two
Three
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...