如何更改字符串首字母的大小写?

时间:2010-11-19 10:03:09

标签: python string uppercase

s = ['my', 'name']

我想将每个元素的第一个字母更改为大写字母。

s = ['My', 'Name']

5 个答案:

答案 0 :(得分:51)

.capitalize()和.title()都会将字符串中的其他字母更改为小写。

这是一个简单的函数,只将第一个字母更改为大写,而其余部分保持不变。

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

答案 1 :(得分:26)

您可以使用capitalize()方法:

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

这将打印:

['My', 'Name']

答案 2 :(得分:12)

您可以使用'my'.title()返回'My'

要浏览完整列表,只需将其映射为:

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

实际上,.title()使所有单词都以大写字母开头。如果您想严格限制第一个字母,请改用capitalize()。 (例如,“此词”被更改为This WordThis word

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

答案 4 :(得分:0)

您可以使用

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