PyQuiz 35 - Indexación anidada en Python | Quiz interactivo

PyQuiz 35 – Indexación anidada en Python

El reto

matriz = [[1, 2], [3, 4], [5, 6]]
print(matriz[1][0])

¿Cuál es el resultado?

  • a) 3
  • b) 2
  • c) 1

Piensa tu respuesta antes de seguir leyendo…


Concepto: Indexación anidada

Una lista de listas (también llamada matriz o lista anidada) es simplemente una lista donde cada elemento es, a su vez, otra lista. Para acceder a los elementos, se usan dos índices consecutivos: el primero selecciona la sublista y el segundo selecciona el elemento dentro de esa sublista.

La sintaxis matriz[fila][columna] funciona porque matriz[fila] devuelve una lista, y sobre esa lista aplicamos [columna]. Los índices siguen siendo cero-based: la primera fila es [0], la segunda es [1], etc.

tabla = [[10, 20], [30, 40], [50, 60]]
print(tabla[0])      # [10, 20]  — primera fila completa
print(tabla[0][1])   # 20       — fila 0, columna 1
print(tabla[2][0])   # 50       — fila 2, columna 0

Paso a paso

  1. matriz = [[1, 2], [3, 4], [5, 6]] — Se crea una lista con tres sublistas. matriz[0]=[1,2], matriz[1]=[3,4], matriz[2]=[5,6].
  2. matriz[1] — Se accede al elemento en el índice 1 (segundo elemento). Esto devuelve la sublista [3, 4].
  3. matriz[1][0] — Sobre la sublista [3, 4], se accede al índice 0 (primer elemento). Devuelve 3.
  4. print(matriz[1][0]) — Se imprime 3.

📥 Llévate el cheatsheet de Python (gratis)

PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.

Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.

Solución

Respuesta correcta: A) 3

matriz[1] = [3, 4], luego [3, 4][0] = 3.

Sabías que…

Para crear matrices de tamaño variable, es importante no usar multiplicación de listas, ya que crea referencias al mismo objeto:

# MAL: todas las filas son el mismo objeto
matriz_mal = [[0] * 3] * 3
matriz_mal[0][0] = 99
print(matriz_mal)  # [[99,0,0],[99,0,0],[99,0,0]] — inesperado!

# BIEN: cada fila es un objeto independiente
matriz_bien = [[0] * 3 for _ in range(3)]
matriz_bien[0][0] = 99
print(matriz_bien)  # [[99,0,0],[0,0,0],[0,0,0]] — correcto

Prueba tú mismo

Con datos = [[1, 2, 3], [4, 5, 6]], ¿cómo accederías al valor 6? ¿Y cómo imprimirías toda la segunda fila?


Más PyQuizzes en elpythonista.com/pyquizzes

Tutorial relacionado: Listas en Python

¿Quieres aprender Python en orden, no a saltos?

Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir