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.
Marcar visualmente los límites de un tramo antes de escribir inicio:fin.
Dibuja primero las posiciones
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»
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
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:
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:
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.
YTH [20, 30, 40]
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])
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.
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.