在字符串中的每个单词之间添加空格

2024-06-06 12:20:37 发布

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

我一直在努力让这对我自己更具挑战性,但我找不到实现这一目标的方法。所以我想知道是否有可能把没有空格的单词分开betweenThemLikeThisJustInASingleString 这是我的代码:

def translate_morse(string):
    morse_a = {
    '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':'--..',1:'.----',2:'..---',3:'...--',4:'....-',5:'.....',6:'-....',7:'--...',8:'---..',9:'----.',0:'-----'}
    translated = ""
    for i in string.split(' '):
        for key, value in morse_a.iteritems():
            if i == value:
                translated += key
    print translated

print """

    ###################################
    #                                 #
    #   Morse Alphabet Translator     #
    #   Author: Blackwolf             #
    #   Date: 2016-29-05              #
    #                                 #
    ###################################
    #                                 #
    #             USAGE:              #
    #  After each morse letter you    #
    #  will need to seperate (space)  #
    #  each letter                    #
    ###################################

"""
finished = False
while finished != True:
    translate_morse(raw_input("Enter morse: "))
    ask_ifFinished = raw_input('Are you done? (Y/N): ').lower()
    if ask_ifFinished == 'y':
        finished = True

Tags: keyinyoutrueforstringmorseif
2条回答

如果要在每个大写字母前插入空格:

import re
string = 'betweenThemLikeThisJustInASingleString'
print(re.sub('([A-Z])', r' \1', string))

输出:

between Them Like This Just In A Single String

没有一个完美的解决方案来分割没有标记边界的单词。计算机怎么知道singlestring应该分成single string而不是sing lest ringlest如果你不知道的话是一个英语单词)?你可以运用一些启发式方法来做出正确的猜测,但它们是复杂和有限的。你也可以列出所有可能的解决方案,但这在你的水平上也是困难的。

stackoverflow上的第一个帖子:)

我在想如何解决这个问题,并想我会分享它。

要求

  • 在字符串中的每个大写字母前加空格。
  • 这里有一个不使用're'的实现
    def spacer(str):

    sentence = []                 # create empty list

    sentence.append(str[0])       # put first letter in list. First letter doesn't need a space.
    for char in str[1::]:         # begin iteration after first letter
        if char.islower():
            sentence.append(char) # if character is lower add to list
        elif char.isupper():
            sentence.append( " ") # if character is upper add a space to list
            sentence.append(char) # then add the upper case character to list  
    result = ''.join(sentence)    # use () join to convert the list to a string
    return result                 # return end result

运行它

string='betweenThemLikeThisJustInASingleString'
spacer(string)

输出

'他们之间就这样一串'

相关问题 更多 >