Lección 16 de 45 · Colecciones y texto

Índices y slicing

Deja de adivinar los cortes: aprende a leer un slice como un intervalo con inicio incluido y final excluido.

Paso a pasoLímites visualesAvanza a tu ritmo
Índice · Lección 16/45
Ya sabes entrar en una posición; ahora aprenderás a tomar un tramo

Con lista[0] obtienes un elemento. Con slicing puedes pedir una porción completa de una secuencia usando la forma inicio:fin.

El detalle que evita casi todas las confusiones es este: el inicio entra; el final no.

Evidencia de aprendizaje

Marcar visualmente los límites de un tramo antes de escribir inicio:fin.

Dibuja primero las posiciones

Índices de una palabra
palabra = "PYTHON"
#          012345

print(palabra[0])
print(palabra[3])

La primera letra está en la posición 0. La letra de índice 3 es H. Escribir los índices encima o debajo durante unos segundos es mucho más fiable que intentar recordarlos mentalmente.

Lee [1:4] como «desde 1 hasta antes de 4»

Extraer YTH
palabra = "PYTHON"
fragmento = palabra[1:4]
print(fragmento)

El corte incluye los índices 1, 2 y 3. Se detiene antes del índice 4. Por eso el resultado es YTH.

Modelo visual: imagina que los límites del slice están entre caracteres. El límite final marca dónde debes detenerte, no qué carácter debes incluir.

Cuando falta un límite, Python usa el extremo

Inicio y final abiertos
numeros = [10, 20, 30, 40, 50]
print(numeros[:2])
print(numeros[2:])

[:2] toma desde el principio hasta antes de la posición 2: [10, 20]. [2:] empieza en la posición 2 y continúa hasta el final.

Esta notación funciona con listas, strings y tuplas porque las tres son secuencias ordenadas.

Los índices negativos cuentan desde el final

-1 es el último elemento, -2 el penúltimo, etc. No hace falta convertir mentalmente siempre a un índice positivo:

El último elemento
colores = ["rojo", "verde", "azul"]
print(colores[-1])

La salida es azul. Esta forma resulta muy útil cuando no sabes de antemano cuántos elementos tendrá la secuencia.

Coloca los límites entre elementos

Para un slice, imagina los límites en los huecos, no encima de las letras:

0P1Y2T3H4O5N6

Para obtener YTH, empiezas en el hueco 1 y terminas en el hueco 4: [1:4].

Ajusta los límites para extraer exactamente YTH. Después comprueba que la misma regla sirve con una lista.

Salida esperada
YTH
[20, 30, 40]
slice.py
La salida aparecerá aquí.

Necesito una pista
  • En ambos casos quieres incluir posiciones 1, 2 y 3.
  • El límite final es el primer índice que ya no quieres incluir.
Ver una solución razonada
palabra = "PYTHON"
fragmento = palabra[1:4]
print(fragmento)

numeros = [10, 20, 30, 40, 50]
print(numeros[1:4])
Para después: los slices también pueden llevar un tercer valor (paso). No lo necesitas para dominar los límites básicos.

Si el corte tiene una letra de más o de menos

No pruebes números al azar. Escribe la secuencia y marca sus índices. Luego identifica el primer elemento que quieres incluir y el primer elemento que ya no quieres incluir. Esos dos números son, respectivamente, el inicio y el final del slice.

Una comprobación antes de entrar en funciones

Sin ejecutar código, intenta responder: en "ABCDE"[1:4], ¿qué índices entran? La respuesta es 1, 2 y 3, así que obtienes BCD.

Avanza cuando…

puedes explicar con tus palabras por qué el límite final de un slice no se incluye. No necesitas aprender todavía slices con pasos ni trucos compactos.