¿Cómo puedo poner en mayúscula la primera letra de cada palabra en una cadena?
s = 'the brown fox'
...haz algo aquí...
s
debiera ser:
'The Brown Fox'
¿Cuál es la forma más sencilla de hacer esto?
El .title()
método de una cadena (ya sea ASCII o Unicode está bien) hace esto:
>>> "hello world".title()
'Hello World'
>>> u"hello world".title()
u'Hello World'
Sin embargo, busque cadenas con apóstrofes incrustados, como se indica en los documentos.
El algoritmo utiliza una definición simple e independiente del idioma de una palabra como grupos de letras consecutivas. La definición funciona en muchos contextos, pero significa que los apóstrofes en las contracciones y los posesivos forman límites de palabras, lo que puede no ser el resultado deseado:
>>> "they're bill's friends from the UK".title() "They'Re Bill'S Friends From The Uk"
El .title()
método no puede funcionar bien,
>>> "they're bill's friends from the UK".title()
"They'Re Bill'S Friends From The Uk"
Método de prueba string.capwords()
,
import string
string.capwords("they're bill's friends from the UK")
>>>"They're Bill's Friends From The Uk"
De la documentación de Python sobre palabras clave :
Divida el argumento en palabras usando str.split(), escriba en mayúscula cada palabra usando str.capitalize() y una las palabras en mayúscula usando str.join(). Si el segundo argumento opcional sep está ausente o es Ninguno, las series de caracteres de espacios en blanco se reemplazan por un solo espacio y los espacios en blanco iniciales y finales se eliminan; de lo contrario, se usa sep para dividir y unir las palabras.