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

use*_*535 1 python

s = "HiMyNameIsBob"

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

for char in s:
    if s.find(letters) is True:
Run Code Online (Sandbox Code Playgroud)

我想要结果

"Hi My Name Is Bob"
Run Code Online (Sandbox Code Playgroud)

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

mgi*_*son 9

我可能依赖于字符串的字典顺序:

''.join( ' '+x if 'A' <= x <= 'Z' else x for x in s )
Run Code Online (Sandbox Code Playgroud)

演示:

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

如果您不想要前导空格,您可以随时.strip()获得结果.

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

>>> ''.join( ' '+x if x.isupper() else x for x in s )
' Hi My Name Is Bob'
Run Code Online (Sandbox Code Playgroud)