Как изменить случай первой буквы строки?
s = ['my', 'name']
Я хочу изменить первую букву каждого элемента в верхний регистр.
s = ['my', 'name']
Ответы
Ответ 1
Оба .capitalize() и .title(), изменяют другие буквы в строке на нижний регистр.
Вот простая функция, которая только меняет первую букву на верхний регистр и оставляет ее неизменной.
def upcase_first_letter(s):
return s[0].upper() + s[1:]
Ответ 2
Вы можете использовать метод capitalize():
s = ['my', 'name']
s = [item.capitalize() for item in s]
print s # print(s) in Python 3
Это напечатает:
['My', 'Name']
Ответ 3
Вы можете использовать 'my'.title()
, который вернет 'My'
.
Чтобы перебрать полный список, просто нарисуйте его следующим образом:
>>> map(lambda x: x.title(), s)
['My', 'Name']
Фактически, .title()
делает все слова начинающимися с верхнего регистра. Если вы хотите строго ограничить его первой буквой, используйте capitalize()
. (Это имеет значение, например, в "этом слове", которое изменяется на This Word
или This Word
)
Ответ 4
Это, вероятно, не имеет значения, но вы можете использовать это вместо строковых методов capitalize()
или title()
, потому что в дополнение к верхнему регистру первой буквы они также строят остальную часть строки (и это не):
s = map(lambda e: e[:1].upper() + e[1:] if e else '', s)
Ответ 5
Вы можете использовать
for i in range(len(s)):
s[i]=s[i].capitalize()
print s