4. Slicing (nuevo 2026)

¿Qué son los slices en Python?

Los slices (o rebanadas) son una forma muy útil y concisa de extraer partes de secuencias en Python, como listas, tuplas o cadenas, sin necesidad de recorrerlas manualmente. 

Sintaxis básica

La notación para crear un slice es:

secuencia[inicio:fin:paso]
  • inicio: índice donde empieza (incluido).

  • fin: índice donde termina (no incluido).

  • paso: salto entre elementos (opcional). 

Observación:

Notar la similitud con los parámetros de la función range().

Omisión de valores

En un slice puedes omitir partes:

  • Si no pones inicio, empieza desde el principio.

  • Si no pones fin, va hasta el final.

  • Si no pones paso, el salto por defecto es 1.

Ejemplos:

numeros[:3]  # primeros 3 elementos
numeros[3:]  # del índice 3 a la derecha

Índices negativos

  • Puedes usar índices negativos para contar desde el final de la secuencia.

  • Si el paso es negativo, el slice recorre la secuencia en sentido inverso. 

Ejemplos:

numeros[-3:]   # últimos 3 elementos
numeros[::-1]  # lista invertida

Modificar secuencias con slices

Los slices no solo sirven para leer datos: también puedes modificar parte de una lista reemplazando elementos.

frutas[1:3] = ["pera", "naranja"]

Aquí se cambian dos elementos por otros dos.

Ejemplos prácticos

Dada la lista:

numeros = [0,1,2,3,4,5,6,7,8,9]
Slice Resultado
numeros[:] Copia completa
numeros[2:7] [2, 3, 4, 5, 6]
numeros[:5] [0, 1, 2, 3, 4]
numeros[::2] [0, 2, 4, 6, 8]
numeros[::-1] [9, 8, ..., 0]

Resumientdo:

✔ Los slices permiten trabajar con partes de secuencias de forma muy compacta.
✔ El índice fin no es inclusivo.
✔ El paso puede ser negativo para invertir la secuencia.
✔ Puedes combinar inicio, fin y paso para obtener sublistas específicas. 

En Python los slices funcionan con cualquier tipo de secuencia, y eso incluye:

✔ listas  ( esto vemos!)

tuplas ( esto NO vemos)

✔ strings (cadenas de caracteres esto vemos!)

✔ rangos ( esto vemos!)

Ejemplos de algo ya visto strings:

texto = "Python"

print(texto[0:3])   # 'Pyt'
print(texto[:4])    # 'Pyth'
print(texto[2:])    # 'thon'
print(texto[::2])   # 'Pto'
print(texto[::-1])  # 'nohtyP