Манипуляции со строками: вводите каждое слово с заглавной буквы после любого разделителя в Python - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь манипулировать строкой, чтобы она использовала заглавные буквы в каждом слове после любого разделителя. В настоящее время я использую метод capwords(), импортированный из модуля string. Пример кода:

my_string = "hello MY-naMe-is john"
new_string = string.capwords(my_string)
print(new_string)

При использовании только capwords() метода получается:

Привет, меня зовут Джон

Результат, который Я пытаюсь получить:

Здравствуйте, меня зовут Джон

Можно ли использовать более одного разделителя в capwords()? Есть ли решение этой проблемы при использовании метода capwords()? Спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Нет способа использовать capwords и получить нужный вам результат. capwords(s, sep=None) документация показывает этапы, которые он выполняет:

  1. str.split() - здесь используется sep (если предусмотрено)
  2. str.capitalize() - первый символ каждого элемента в списке (из split) пишется с заглавной буквы
  3. str.join() - строка присоединяется назад

split занимает всего один sep. Тем не менее, re.split принимает несколько разделителей / разделителей.

Используйте title(), если хотите достичь желаемого результата, как предложено @ Ananth.P

1 голос
/ 25 февраля 2020

Использовать title () в встроенном методе

my_string = "hello MY-naMe-is john"
new_string = my_string.title()
print(new_string)

#'Hello My-Name-Is John'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...