2008-12-09 10 views
43

¿Alguien sabe de una manera muy sencilla de aprovechar sólo la primera letra de una cadena, independientemente de la capitalización del resto de la cadena?en mayúsculas una cadena

Por ejemplo:

asimpletest -> Asimpletest 
aSimpleTest -> ASimpleTest 

Me gustaría ser capaz de hacer todas las longitudes de cuerda también.

Respuesta

65

@saua es correcto, y

s = s[:1].upper() + s[1:] 

funcionará para cualquier cadena.

+0

¡Agradable! Esos son los pequeños trucos que no sé ... Debería usar Python con más frecuencia. –

+1

¿Por qué no 's = s [0] .upper() + s [1:]'? ¿Por qué el '[: 1]'? – hobs

+7

Como @saua notes, 's [0]' fallará en una cadena vacía. –

8
s = s[0].upper() + s[1:] 

Esto debería funcionar con cada cadena, a excepción de la cadena vacía (cuando s="").

+0

se me adelantó, y el suyo es más elegante. – UnkwnTech

13

¿Qué hay de your_string.title()?

p. Ej. "banana".title() -> Banana

+3

'str.title' capitaliza cada _word_ en la cadena –

+0

@John La Rooy ... que es exactamente lo que quería hacer sin necesidad de escribir una nueva definición para dividir, capitalizar cada palabra, y poner de nuevo juntos ... Upvote a skyler –

4

esto en realidad le da una palabra en mayúsculas, en lugar de sólo mayúscula la primera letra

capitalizar -> mayúscula

def capitalize(str): 
    return str[:1].upper() + str[1:].lower()....... 
112
>>> b = "my name" 
>>> b.capitalize() 
'My name' 
>>> b.title() 
'My Name' 
+5

El uso de la biblioteca estándar es definitivamente el camino a seguir. – Damian

+1

... excepto capitalizar() elimina cualquier otro tapas existentes, que el que pregunta explícitamente no quiere que suceda: 'aSimpleTest'.capitalize() => 'Asimpletest' – pfctdayelise

+1

@pfctdayelise .. ¿Estás abajo votando todas las respuestas que no se ajusten este requisito o solo el mío :)? Sin embargo, estoy de acuerdo con tu observación. La respuesta de Blair Conrad es muy precisa. Pero, otras respuestas agregan valor al presentar información útil sobre la capitalización de cadenas, incluida la mía. Tres de ellos se agregaron más tarde que la respuesta aceptada. – tigeronk2

-4
str = str[:].upper() 

esta es la manera más fácil de hacerlo en mi opinión

+0

Esto es completamente incorrecto, ya que convierte todos los caracteres de la cadena en mayúsculas. Además, el '[:]' es inútil. –

2

para capitalizar primera palabra;

a="asimpletest" 
print a.capitalize() 

para hacer todas las cadenas mayúsculas utilice el siguiente consejo;

print a.upper() 

esta es la más fácil, creo.

1

Usted puede utilizar la función de str.capitalize() hacer que

In [1]: x = "hello" 

In [2]: x.capitalize() 
Out[2]: 'Hello' 

espero que ayude.

Cuestiones relacionadas