2011-02-08 44 views
1

我目前有一个莫尔斯码字母的字典,我希望能够将用户输入字符串更改为相应的莫尔斯码字符。有没有简单的方法来完成这个python?使用字典在Python中更改字符串

+5

你有什么,到目前为止,怎么不工作? – 2011-02-08 10:33:09

回答

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) 
+0

你的测试也需要`如果letter.upper()在morse`中,否则小写不会被翻译。 – Duncan 2011-02-08 10:52:14

+0

@Duncan:对,谢谢!不过,我有一个更好的主意。 – 2011-02-08 10:53:30

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

这将默默删除所有不是密钥的字符morseDict

编辑:现在在“字母”之间添加空格。您需要将' '映射到一个制表符或多个空格来分隔字词。

0
morse = { 
"a": ".-", 
"b": "-...", 
"c": "-.-.", 
... 
... 
} 

str = "Hello" 

for ch in str: 
    print morse[ch.lower()], 
0

这很容易:

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

print ' '.join([morse_code[i] for i in input])