s = ['my', 'name']
我想将每个元素的第一个字母更改为大写字母。
s = ['My', 'Name']
答案 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 Word
或This 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