web-dev-qa-db-ja.com

文字列の最初の文字の大文字と小文字を変更するには?

s = ['my', 'name']

各要素の最初の文字を大文字に変更したい。

s = ['My', 'Name']
28
yyyy

.capitalize()と.title()はどちらも、文字列内の他の文字を小文字に変更します。

以下は、最初の文字のみを大文字に変更し、残りは変更しない単純な関数です。

def upcase_first_letter(s):
    return s[0].upper() + s[1:]
51

capitalize() メソッドを使用できます。

s = ['my', 'name']
s = [item.capitalize() for item in s]
print s  # print(s) in Python 3

これは印刷されます:

['My', 'Name']
26

_'My'_を返す'my'.title()を使用できます。

完全なリストを取得するには、次のようにマップします。

_>>> map(lambda x: x.title(), s)
['My', 'Name']
_

実際、.title()を指定すると、すべての単語が大文字で始まります。最初の文字を厳密に制限したい場合は、代わりにcapitalize()を使用してください。 (これにより、たとえば、「このWord」が_This Word_または_This Word_のいずれかに変更されます)

12
Frank

それはおそらく問題ではありませんが、capitalize()またはtitle()文字列メソッドの代わりにこれを使用することをお勧めします。文字列(これはありません):

_s = map(lambda e: e[:1].upper() + e[1:] if e else '', s)
_

注: Python 3の場合、以下を使用する必要があります。

_s = list(map(lambda e: e[:1].upper() + e[1:] if e else '', s))
_

map()は、Python 2の場合のように、listではなく、反復可能なすべての項目に関数を適用するイテレータを返すため、自分自身に)。

6
martineau

使用できます

for i in range(len(s)):
   s[i]=s[i].capitalize()
print s
0
Kracekumar