¿Existe substring, substr o algo similar en python?

En Python hay algunas cosas que sorprenden a los recién llegados que tienen experiencia en otros lenguajes de programación. Una habitual es que no hay switch en Python. Otra que también despista bastante es que no existe una función como substr.

¿Cómo se puede extraer parte de una cadena o string en Python?

La solución para hacer esto es usar el siguiente método:

cadena[comienzo:fin]

Donde cadena es una variable que contiene una cadena, comienzo es un entero con el que indicamos desde qué posición queremos a extraer y con fin marcamos el final. La cadena extraída será desde comienzo hasta fin-1.

Nota: la primera posición de la cadena es la posición 0.

Por ejemplo:

cadena = "Hola amiguetes"
print(cadena[0:1]) # Esto dará como resultado 'H'

El resultado es ‘H’ porque estamos pidiendo desde el elemento 0 (el primero) hasta el elemento 0 (recordemos que es fin-1).

cadena = "Hola amiguetes"
print(cadena[1:1]) # Esto dará como resultado ''

Aquí el resultado es una cadena vacía puesto que empezamos en 1 y terminamos en 0 (1-1).

cadena = "Hola amiguetes"
print(cadena[1:2]) # Esto dará como resultado 'o'

Aquí recogemos desde la posición 1 hasta la 1 (2-1). Por eso sale sólo la ‘o’. A veces resulta confuso porque el segundo número (fin) no indica la longitud de la subcadena que queremos sino la posición del último elemento de la misma.

Y aquí os dejo otros ejemplos:

print(cadena[0:6]) # 'Hola a'
print(cadena[0:]) # Si no indicamos fin recogemos la cadena hasta el final 'Hola amiguetes'
print(cadena[5:]) # 'amiguetes'
print(cadena[:5]) # 'Hola'
print(cadena[:]) # 'Hola amiguetes'
print(cadena[-8]) # 'm' recoge el octavo elemento empezando por el final
print(cadena[-8:]) # 'miguetes' desde el octavo empezando por el final hasta el final
print(cadena[:-4]) # 'Hola amigu' Desde el principio hasta el cuarto elemento empezando por el final

Más información: http://docs.python.org/release/2.3.5/whatsnew/section-slices.html

Deja un comentario