2011-07-25 10 views
13

Duplicar posibles:
Is there a way to substring a string in Python?Strip, pero todos los 5 primeros caracteres - Python

tengo una cadena en el 'AAAH8192375948' forma. ¿Cómo guardo los primeros 5 caracteres de esta cadena y elimino todo el resto? ¿Está en la forma l.strip con un entero negativo? Gracias.

+0

@ user851620 ** strip() ** y ** split() ** son dos funciones distintas. ¿Realmente quieres decir ** strip() **? Me pregunto qué significa _ "despojar al resto" _. – eyquem

Respuesta

23

Una cadena en Python es un sequence type, como una lista o una tupla. Basta con tomar los primeros 5 caracteres:

some_var = 'AAAH8192375948'[:5] 
print some_var # AAAH8 

La notación rebanada es [start:end:increment] - Los números son opcionales si desea utilizar los valores por defecto (inicio por defecto es 0, de extremo a len (my_sequence) y el incremento a 1). Por lo tanto:

sequence = [1,2,3,4,5,6,7,8,9,10] # range(1,11) 

sequence[0:5:1] == sequence[0:5] == sequence[:5] 
# [1, 2, 3, 4, 5] 

sequence[1:len(sequence):1] == sequence[1:len(sequence)] == sequence[1:] 
# [2, 3, 4, 5, 6, 7, 8, 9, 10] 

sequence[0:len(sequence):2] == sequence[:len(sequence):2] == sequence[::2] 
# [1, 3, 5, 7, 9] 

strip elimina un carácter o conjunto de caracteres desde el principio y el final de la cadena - introducir un número negativo significa simplemente que usted está tratando de eliminar la representación de cadena de ese número negativo de la cadena.

+4

No es correcto: las cadenas son tipos de secuencias inmutables en Python. Su solución es correcta si el valor del corte se vuelve a atribuir a la variable, sin embargo. – brandizzi

+0

@brandizzi - bastante correcto. He actualizado mi respuesta. ¡Gracias! –

+0

¡Muchas gracias! Eso funciona perfectamente. – bac

4

¿Has oído hablar de rebanar?

>>> # slice the first 5 characters 
>>> first_five = string[:5] 
>>> 
>>> # strip the rest 
>>> stripped = string[5:].strip() 
>>> 
>>> # in short: 
>>> first_five_and_stripped = string[:5], string[5:].strip() 
>>> 
>>> first_five_and_stripped 
('AAAH8', '192375948') 
+1

¿No sería simplemente 'string [: 5]'? – thegrinner

+0

Veo lo que está haciendo aquí, pero podría ser un poco confuso para alguien que aún no conoce la notación de sectores. – senderle

+0

Cita: ¿Cómo puedo mantener los primeros 5 caracteres de esta cadena, ** y quitar todo el resto? ** @senderle Es por eso que le pregunté si había oído hablar de él. Pero lo completaré –

5

Supongo que no solo significa "deshacerse de todo excepto los primeros 5 caracteres", sino más bien "mantener los primeros 5 caracteres y ejecutar tira() sobre el resto".

>>> x = 'AAH8192375948' 
>>> x[:5] 
'AAH81' 
>>> x[:5] + x[5:].strip() 
'AAH8192375948' 
Cuestiones relacionadas