31
s = ['my', 'name']

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

s = ['My', 'Name']
4

5 に答える 5

54

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

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

def upcase_first_letter(s):
    return s[0].upper() + s[1:]
于 2012-11-23T09:07:47.983 に答える
29

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

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

これは印刷されます:

['My', 'Name']
于 2010-11-19T10:05:52.930 に答える
14

'my'.title()を返すものを使用できます'My'

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

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

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

于 2010-11-19T10:06:07.467 に答える
6

おそらく問題ではありませんが、最初の文字を大文字にするだけでなく、文字列の残りの部分も小文字にするため、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 の場合のように a ではなく、 iterable のすべての項目に関数を適用するイテレータを返すためlistです (そのため、自分でイテレータに変換する必要があります)。

于 2010-11-19T11:53:54.513 に答える
0

使用できます

for i in range(len(s)):
   s[i]=s[i].capitalize()
print s
于 2010-11-19T10:47:24.827 に答える