次の手順があります。
def capitalize(self, text):
t = ' '.join([ ''.join([w[0].upper()]+[w[1:]]) for w in text.split()])
if text and text[-1] == ' ':
t = ''.join([t] + [' '])
return t
文字列textを取ります。すべきこと:
- スペースの後に続く各文字列グループ (単語) の最初の文字を大文字にし、テキストの末尾にスペースがあればそれを保持します。
元:
'home swe eeeet home' -> 'Home Swe Eeeet Home'
'heLLo OoO ooo ' -> 'HeLLo OoO Ooo ' (space preserved in the end)
質問:
限られた完全に非専門家レベルの Python を使用して、この手順をメモリ効率が高く、できるだけ高速に作成しようとしました。
この場合、物事をリストに変換して結合し、新しい文字列を作成し続けないようにするアプローチは効率的ですか?
これを達成するためのより良い、よりpythonicな方法はありますか?
さらに:
このプロシージャは、GUI アプリケーションのテキスト フィールドでキーが押されるたびに呼び出されます。