使用字典在Python中更改字符串

1 投票
4 回答
1149 浏览
提问于 2025-04-16 11:26

我现在有一个摩尔斯电码字典,里面存着字母和它们对应的摩尔斯电码。我想把用户输入的字符串转换成相应的摩尔斯电码字符。请问在Python中有没有简单的方法可以做到这一点?

4 个回答

0

这很简单:

input = 'a string'
morse_code = { ... }

print ' '.join( [morse_code[i] for i in input] )
2
newStr = ' '.join(morseDict[c] for c in oldStr if c in morseDict)

这段代码会悄悄地删除所有在 morseDict 中没有的字符。

补充一下:现在在“字母”之间添加了空格。你可能想把 ' ' 映射成一个制表符或者多个空格,这样就能作为单词的分隔符了。

6
morse = {"A": ".-", "B": "-...", "C": "-.-."} #etc.
text = "ABC"
output = " ".join(morse[letter] for letter in text)

如果你的输入可能是小写字母的话,可以考虑使用 letter.upper() 这个方法来把它变成大写。而且,如果你的摩尔斯电码表里没有包含所有的摩尔斯字符,你可能也需要想办法处理这个问题(这点要感谢 ThiefMaster 的建议!)。这样最终的结果可能会是:

output = " ".join(morse[letter] for letter in text.upper() if letter in morse)

撰写回答