Slicing en Python
El slicing en Python es una técnica usada para obtener una parte o un subconjunto de elementos de una secuencia, como una lista, cadena de texto o tupla. Es una herramienta muy útil para trabajar con datos en Python, ya que permite extraer elementos de forma sencilla y precisa.
Sintaxis básica de Slicing
La sintaxis básica para realizar slicing es:
secuencia[inicio:fin:paso]
inicio
: El índice desde donde se empieza a extraer los elementos. Si no se especifica, se toma el primer elemento de la secuencia (índice0
).fin
: El índice donde se termina de extraer elementos (no incluye el índice defin
en el resultado). Si no se especifica, se asume hasta el final de la secuencia.paso
: La cantidad de elementos a saltar entre cada uno (por defecto es1
).
Ejemplos de Slicing en Python
1. Extraer una subcadena de texto
texto = "Python es divertido"
subcadena = texto[0:6] # Extrae los primeros 6 caracteres
print(subcadena) # Salida: Python
2. Slicing en una lista
numeros = [10, 20, 30, 40, 50, 60, 70]
subset = numeros[1:5] # Extrae elementos desde el índice 1 hasta el 4
print(subset) # Salida: [20, 30, 40, 50]
3. Usar el paso para saltos
lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
saltos = lista[0:10:2] # Extrae cada 2 elementos desde el inicio hasta el índice 10
print(saltos) # Salida: [0, 2, 4, 6, 8]
4. Slicing con índices negativos
En Python, los índices negativos permiten empezar a contar desde el final de la secuencia.
letras = ["a", "b", "c", "d", "e", "f"]
inverso = letras[-4:-1] # Extrae desde el cuarto al final hasta el segundo al final
print(inverso) # Salida: ['c', 'd', 'e']
5. Invertir una secuencia con slicing
texto = "Python"
invertido = texto[::-1] # Al usar un paso de -1 se invierte la secuencia
print(invertido) # Salida: nohtyP
6. Omitir inicio
o fin
lista = [1, 2, 3, 4, 5, 6, 7, 8, 9]
inicio_omitido = lista[:4] # Solo se especifica el fin
fin_omitido = lista[4:] # Solo se especifica el inicio
print(inicio_omitido) # Salida: [1, 2, 3, 4]
print(fin_omitido) # Salida: [5, 6, 7, 8, 9]
7. Copiar una lista usando slicing
Una forma rápida de copiar una lista es usando el operador de slicing sin parámetros.
original = [1, 2, 3, 4]
copia = original[:]
print(copia) # Salida: [1, 2, 3, 4]
Resumen de ejemplos
- Extraer subcadena o sublista:
secuencia[inicio:fin]
- Con paso:
secuencia[inicio:fin:paso]
- Invertir secuencia:
secuencia[::-1]
- Índices negativos:
secuencia[-inicio:-fin]
- Copiar secuencia:
secuencia[:]