如何在字符串中拆分大写字母?

时间:2013-02-13 01:31:06

标签: python

s = "HiMyNameIsBob"

letters = ("A","B", "C", "D"...)

for char in s:
    if s.find(letters) is True:

我希望结果是

"Hi My Name Is Bob"

我想避免使用正则表达式方法

4 个答案:

答案 0 :(得分:9)

我可能依赖字符串的词典排序:

''.join( ' '+x if 'A' <= x <= 'Z' else x for x in s )

演示:

>>> s = "HiMyNameIsBob"
>>> ''.join( ' '+x if 'A' <= x <= 'Z' else x for x in s )
' Hi My Name Is Bob'

如果您不想要前导空格,则始终可以.strip()结果。

检查字符是否为大写的一种稍微好一点的方法是使用isupper()函数(感谢Esthete和wim指出这一点):

>>> ''.join( ' '+x if x.isupper() else x for x in s )
' Hi My Name Is Bob'

答案 1 :(得分:2)

你想要str.isupper()

>>> s = "HiMyNameIsBob"
>>> t = ''.join(c for c in s if c.isupper())
>>> print t
HMNIB

答案 2 :(得分:0)

import sys

s = "HiMyNameIsBob"

letters = ("A","B", "C", "D"...)

for char in s:
    if s.find(letters):
        sys.stdout.write(' ')
    sys.stdout.write(char)

答案 3 :(得分:0)

>>> re.sub('([A-Z])',' \g<1>', "HiMyNameIsBob").strip()
'Hi My Name Is Bob'