Per*_*sen 52

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

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

def upcase_first_letter(s):
    return s[0].upper() + s[1:]
Run Code Online (Sandbox Code Playgroud)

  • 此代码将为空字符串提供索引错误.请改用`return s [:1] .upper()+ s [1:]` (2认同)

Fré*_*idi 26

您可以使用capitalize()方法:

s = ['my', 'name']
s = [item.capitalize() for item in s]
print s  # print(s) in Python 3
Run Code Online (Sandbox Code Playgroud)

这将打印:

['My', 'Name']
Run Code Online (Sandbox Code Playgroud)

  • 大写并没有做OP所要求的.大写也将使小写非首字母 (18认同)
  • 是的,这个答案有误导性:''naMe'.capitalize()=='Name' (6认同)

Fra*_*ank 12

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

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

>>> map(lambda x: x.title(), s)
['My', 'Name']
Run Code Online (Sandbox Code Playgroud)

实际上,.title()所有单词都以大写字母开头.如果您想严格限制它的第一个字母,请capitalize()改用.(例如,在'this word'中将其更改为This Word或者This word)


mar*_*eau 6

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

s = map(lambda e: e[:1].upper() + e[1:] if e else '', s)
Run Code Online (Sandbox Code Playgroud)

注意:在Python 3中,您需要使用:

s = list(map(lambda e: e[:1].upper() + e[1:] if e else '', s))
Run Code Online (Sandbox Code Playgroud)

因为map()返回一个迭代器,它将函数应用于每个iterable项而不是list像Python 2中那样(所以你必须自己把它变成一个).

  • @martineau,我的全部抱怨是你试图规避鸭子打字.在我看来,正确的解决方案是`lambda e:e [:1] .upper()+ e [1:]`. (2认同)