Slicing de Listas Parte 2
Parte de la sección Fundamentals del Journey de Python de Coddy — lección 65 de 77.
El slicing tiene otro parámetro step (paso): lst[start:stop:step]. Por ejemplo, considera esta lista:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]Obtiene cada segundo elemento desde el índice 1 al 8:
print(numbers[1:8:2])
# Salida: [1, 3, 5, 7]Obtiene cada tercer elemento a partir del índice 2:
print(numbers[2::3])
# Salida: [2, 5, 8]El slicing también admite índices negativos.
Contando desde el final:
print(numbers[-3:])
# Salida: [7, 8, 9]Aquí, -3 significa "empezar 3 posiciones desde el final"
Contar hasta el final:
print(numbers[:-2])
# Output: [0, 1, 2, 3, 4, 5, 6, 7]Aquí, -2 significa "detenerse 2 posiciones antes del final" (excluido)
Invertir con un paso negativo:
print(numbers[::-1])
# Salida: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]- Espacio vacío antes del primer
:significa “empezar desde el principio” - Espacio vacío entre
:significa “ir hasta el final” - -1 significa "retroceder un paso a la vez"
Desafío
FácilCrea un programa que reciba una lista como entrada (dada) e imprima tres nuevas listas basadas en las siguientes operaciones de segmentación (slicing):
- Una lista que contenga cada tercer elemento, comenzando desde el índice 1 (el segundo elemento)
- Una lista que contenga todos los elementos desde el 6.º elemento hasta el 1.º en orden inverso
- Una lista que contenga cada segundo elemento comenzando desde la mitad de la lista hasta el final
Hoja de referencia
Sintaxis de slicing: lst[start:stop:step]
Ejemplos de slicing:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Cada segundo elemento desde el índice 1 al 8
print(numbers[1:8:2]) # Salida: [1, 3, 5, 7]
# Cada tercer elemento desde el índice 2
print(numbers[2::3]) # Salida: [2, 5, 8]
# Últimos tres elementos
print(numbers[-3:]) # Salida: [7, 8, 9]
# Todos los elementos excepto los últimos dos
print(numbers[:-2]) # Salida: [0, 1, 2, 3, 4, 5, 6, 7]
# Invertir la lista
print(numbers[::-1]) # Salida: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]Puntos clave:
- Los índices negativos cuentan desde el final de la lista
- Un espacio vacío antes del primer
:significa "empezar desde el principio" - Un espacio vacío entre los
:significa "ir hasta el final" - Un paso (step) negativo invierte el orden
Pruébalo tú mismo
lst = input().split(",")
# Escribe tu código a continuaciónEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos10FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz13Listas Avanzadas
Slicing de Listas Parte 1Slicing de Listas Parte 2Operadores de SecuenciaPertenencia2Variables
NúmerosStringBooleanConvenciones de nomenclaturaVariables vacíasRepaso - Inicializar variables8Bucles
Bucle ForBucle WhileBreakContinueRepaso - FactorialLa función RangeBucle anidadoRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación9Funciones
Declarar una funciónArgumentosRetornoResumen - Función SigmaResumen - Función de validaciónValores por defecto