/ / Kapitalizuj pierwszą literę słowa w ciągu znaków - python, python-2.7

Kapitalizuj pierwszą literę wyrazu w ciągu znaków - python, python-2.7

Mam ciągi takie jak następujące: próbowałem .title () i capitalize (), ale nie sukcesów.

Wkład

"hello world"
"1hello world"
"hello   world  lol"
"1 2 2 3 4 5 6 7 8  9"
"1 w 2 r 3g"
"132 456 Wq  m e"
"q w e r t y u i o p a s d f g h j  k l z x c v b n m Q W E R T Y U I O P A S D F G H J  K L Z X C V B N M"

Wydajność

"Hello World"
"1hello World"
"Hello   World  Lol"
"1 2 2 3 4 5 6 7 8  9"
"1 W 2 R 3g"
"132 456 Wq  M E"
"Q W E R T Y U I O P A S D F G H J  K L Z X C V B N M Q W E R T Y U I O P A S D F G H J  K L Z X C V B N M"

Próbowałem tego również, ale gdy wprowadzono ciąg z więcej niż jedną spację, otrzymałem błąd.

str = "Hello   World  Lol"
for i in range(0,len(new)):
str += new[i][0].upper() + new[i][1:] + " "
print str

Odpowiedzi:

1 dla odpowiedzi № 1

W twoim kontekście możesz użyć capitalize() metoda.

str = "Helo  w world lol"
lista = []
for i in str.split(" "):
lista.append(i.capitalize())
print " ".join(lista) #"Helo  W World Lol"

Używanie rozumienia list:

print " ".join([i.capitalize() for i in str.split(" ")])

3 dla odpowiedzi № 2

Jak próbowałeś .title()? str.title() powinien zwrócić napisany wielką literą łańcuch, ale pamiętaj, że ciągi są niezmienne, więc będziesz musiał przypisać je do nowej wartości.

string1 = "hello   world  lol"
string2 = string1.title()