.split()和三个空格



我正在写一个小脚本,将莫尔斯电码转换为纯文本。

例如:

"···· · −·−−   ·−−− ··− −·· ·" 

将返回CCD_ 1。但是,我希望它是"HEY JUDE",在两个单词之间有一个空格。

"HEY""JUDE"的莫尔斯电码之间有3个空格,我认为.split()在这里帮不了我。你能给我一个指针吗?

def decodeMorse(morse_code):
morseDict = {".-" : "A", "-..." : "B", "-.-." : "C", "-.." : "D",
"." : "E", "..-." : "F", "--." : "G", "...." : "H",
".." : "I", ".---" : "J", "-.-" : "K", ".-..": "L",
"--" : "M", "-." : "N", "---" : "O", ".--." : "P",
"--.-" : "Q", ".-." : "R", "..." : "S", "-" : "T",
"..-" : "U", "...-" : "V", ".--" : "W", "-..-" : "X",
"-.--" : "Y", "--.." : "Z"
}
cipher = morse_code.split(" ")
plain = []
for n in cipher:
plain.append(morseDict[n])
plain = "".join(plain)
return plain

decodeMorse()的第一行,您可以将3个相邻空间中的中间空间替换为任何不同的字符:

morse_code = morse_code.replace('   ', ' @ ')

则将该字符添加到CCD_ 7。

morseDict['@']=' '

代码的其余部分不需要修改。

也许你可以分两步,第一步是

.split('   ') #with 3 spaces

一个字一个字地解码,然后解码每个字,在两者之间添加您想要的空格!

如果您的输入是这样的,您可以先用三重空间将它们拆分,然后分别迭代每个单词。

code = ".... . −.−−   .−−− ..− −.. ."
words = code.split("   ")

最新更新