s = "HiMyNameIsBob"
letters = ("A","B", "C", "D"...)
for char in s:
if s.find(letters) is True:
我希望结果是
"Hi My Name Is Bob"
我想避免使用正则表达式方法
答案 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'