首页 > 解决方案 > 为什么迭代循环不起作用

问题描述

我有一个问题,我正在尝试完成一个我输入的练习,1,2,3输出会说:One, Two Three. 以下代码不起作用。我的逻辑是输入数字,1,2,3然后通过输入运行 for 循环。非常感谢!

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

标签: pythondictionary

解决方案


首先,您需要确保您的输入是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

推荐阅读