使用字典在Python中更改字符串
我现在有一个摩尔斯电码字典,里面存着字母和它们对应的摩尔斯电码。我想把用户输入的字符串转换成相应的摩尔斯电码字符。请问在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)