.split()和三重空间

2024-10-04 09:27:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个小脚本,将摩尔斯电码转换成纯文本

例如:

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

将返回"HEYJUDE"。但是,我希望它是"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

Tags: 文本脚本morse电码code单词splitcipher
3条回答

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

.split('   ') #with 3 spaces

一个字一个字地解码,然后解码每个字,在这两个字之间加上你想要的空格

如果您的输入看起来像这样,您可以先将它们按三倍空间分割,然后分别迭代每个单词

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

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

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

然后将这个字符添加到morseDict

morseDict['@']=' '

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

相关问题 更多 >