![](/img/trans.png)
[英]How to take a string and return a list of all the words in a dictionary that differ from this word by exactly one letter?
[英]Replace each letter of a string with words from a dictionary
我正在尝试用字典中的单词替换字符串中的字母。 例如:home 应该输出 'Hotel'、'Oscar'、'Mike'、'Echo'。 但是,如果我输入rain,它会输出raiNovember
。 下面是我的代码。 有人可以帮我弄清楚为什么它不起作用吗? TIA
我是 Python 新手,我正在尝试学习字典。
最好将每个字母对应的单词存储到列表中。 当您将字母循环到此列表中时,您可以附加与该字母对应的每个单词,并且您将在最后找到您要查找的内容。
修改您的代码以执行此操作,它现在应该在您打印到控制台时输出您想要的内容。
letters_to_words = {
'a' : "Alpha", 'b' : "Bravo", 'c' : "Charlie", 'd' : "Delta",
'e' : "Echo", 'f' : "Foxtrot", 'g' : "Golf", 'h' : "Hotel",
'i' : "India", 'j' : "Juliet", 'k' : "Kilo", 'l' : "Lima",
'm' : "Mike", 'n' : "November", 'o' : "Oscar", 'p' : "Papa",
'q' : "Quebec", 'r' : "Romeo", 's' : "Sierra", 't' : "Tango",
'u' : "Uniform", 'v' : "Victor", 'w' : "Whiskey", 'x' : "X-Ray",
'y' : "Yankee", 'z' : "Zulu"
}
sentence = input("Enter input: ")
sentence = sentence.lower()
words = []
for i in sentence:
word = letters_to_words[i]
words.append(word)
print(words)
“雨”这个词有4个字母。 因此你的循环将被执行四次。
因此打印出最近的词值,即 raiNovember
正确的代码如下:
letters_to_words = {
'a' : "Alpha", 'b' : "Bravo", 'c' : "Charlie", 'd' : "Delta",
'e' : "Echo", 'f' : "Foxtrot", 'g' : "Golf", 'h' : "Hotel",
'i' : "India", 'j' : "Juliet", 'k' : "Kilo", 'l' : "Lima",
'm' : "Mike", 'n' : "November", 'o' : "Oscar", 'p' : "Papa",
'q' : "Quebec", 'r' : "Romeo", 's' : "Sierra", 't' : "Tango",
'u' : "Uniform", 'v' : "Victor", 'w' : "Whiskey", 'x' : "X-Ray",
'y' : "Yankee", 'z' : "Zulu"
}
sentence = input("Enter input: ")
sentence.lower()
words = ""
for i in sentence:
words += letters_to_words[i]+" "
print(words)
字典部分似乎主要起作用,但其他答案并没有真正解决一些问题:
KeyError
异常所以我对处理部分的建议是:
word_list = [letters_to_words.get(c, "?") for c in sentence.lower()]
print ", ".join(word_list)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.