s = "HiMyNameIsBob"
letters = ("A","B", "C", "D"...)
for char in s:
if s.find(letters) is True:
私は結果が欲しい
"Hi My Name Is Bob"
正規表現の使用を避けたい
s = "HiMyNameIsBob"
letters = ("A","B", "C", "D"...)
for char in s:
if s.find(letters) is True:
私は結果が欲しい
"Hi My Name Is Bob"
正規表現の使用を避けたい
ここでは、文字列の辞書式順序に依存する場合があります。
''.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'
str.isupper()が必要です。
>>> s = "HiMyNameIsBob"
>>> t = ''.join(c for c in s if c.isupper())
>>> print t
HMNIB
>>> re.sub('([A-Z])',' \g<1>', "HiMyNameIsBob").strip()
'Hi My Name Is Bob'
import sys
s = "HiMyNameIsBob"
letters = ("A","B", "C", "D"...)
for char in s:
if s.find(letters):
sys.stdout.write(' ')
sys.stdout.write(char)