Python的单词分隔符

时间:2017-11-12 22:58:52

标签: python

    my_string = input("Enter words. ")
    i = 0
    result = ()
    for c in my_string:
        if c.isupper() and i > 0:
            result += ( )
            result += c.lower()
        else:
            result += c
        i += 1

    print result

我一直试图为python创建一个单词分隔符,除非我遇到很多麻烦,我在StackOverflow上发现了一个类似的问题,除非他们不使用一个输入语句,这是我想要弄清楚的。我要做到这一点,我只需要把它放到需要输入语句的地方,要求用户输入他们希望分离的任何单词集。非常感谢!

1 个答案:

答案 0 :(得分:2)

选项1
使用yield进行迭代:

In [156]: def split(string):
     ...:     for c in string:
     ...:         if c.isupper():
     ...:             yield ' '
     ...:         yield c
     ...:             

In [157]: ''.join(split("PurpleCowsAreNice"))
Out[157]: ' Purple Cows Are Nice' 

选项2
re.sub与参考群组:

In [159]: re.sub('([A-Z])', r' \1', "PurpleCowsAreNice")
Out[159]: ' Purple Cows Are Nice'

为简单起见,我允许两种方法都使用前导空格生成结果,但您可以使用str.strip轻松删除它们。