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()which will return 'My'

要查看完整列表,只需像这样映射它:

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

实际上,.title()使所有单词都以大写开头。如果您想严格限制它的第一个字母,请capitalize()改用。(这会有所不同,例如将“this word”更改为This Wordor This word

于 2010-11-19T10:06:07.467 回答
6

这可能无关紧要,但是您可能希望使用 this 而不是capitalize()ortitle()字符串方法,因为除了将第一个字母大写之外,它们还将字符串的其余部分小写(这不会):

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()返回一个迭代器,它将函数应用于 iterable 的每个项目,而不是list像在 Python 2 中那样(所以你必须自己把它变成一个)。

于 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 回答