Presten mucha atención, amigos, porque las listas 2D son básicamente tablas.
Las tablas son estructuras de datos bidimensionales donde podemos almacenar datos tanto vertical como horizontalmente.
Normalmente esto significa que los datos verticales se usan para campos (una categoría - nombre, ID, galleta favorita, etc.) y los datos horizontales se usan para registros (todos los datos de cada categoría).
Entre bastidores, vemos una lista dentro de una lista. Olvídate de lo que sabes sobre la lectura de una tabla con matemáticas o geografía: “primero cruza el pasillo (eje x) y luego baja las escaleras (eje y)”.
Aquí, haremos primero el índice de fila y luego el índice de columna.

Aquí tenemos una lista 1D. Tenemos el nombre de la lista como variable, un igual para establecer el valor, y corchetes para mostrar que es una lista. Las listas 2D son muy similares.
my1DList = ["Johnny", 21, "Mac"]
Para añadir la segunda dimensión, ponemos listas dentro de la primera lista.

👉 Cada nueva lista tiene su propio conjunto de corchetes y está separada por una coma. Esta disposición del código es agradable para ayudarnos a visualizar la lista 2D como una tabla, pero…
my2DList = [ ["Johnny", 21, "Mac"],
["Sian", 19, "PC"],
["Gethin", 17, "PC"] ]
…también puedes maquetarlo así
my2DList = [ ["Johnny", 21, "Mac"], ["Sian", 19, "PC"], ["Gethin", 17, "PC"] ]
Ahora, vamos a imprimir esta lista.
Recuerda, cualquier comentario sobre el código se escribe en verde así:
#estos son comentarios para ti, el ordenador los ignorará
👉 Podemos imprimir una lista 2D entera igual que hacemos con una lista 1D. Sin embargo, esto imprimirá todos los corchetes, comas, etc.
print(miLista2D)
# Esto mostrará [['Johnny', 21, 'Mac'], ['Sian', 19, 'PC'], ['Gethin', 17, 'PC']].
Para imprimir una sola fila, utiliza un solo corchete [] en el comando print. Sin embargo, seguirás teniendo todos esos corchetes y comas.
👉 En este ejemplo, estoy imprimiendo la primera fila (índice 0) - todos los datos sobre Johnny.
print(miLista2D[0])
# Este código muestra ['Juanito', 21, 'Mac'].
El primer corchete hace referencia a la lista, mientras que el segundo hace referencia al elemento dentro de esa lista.
👉 He aquí un par de ejemplos:
my2DList = [ ["Johnny", 21, "Mac"],
["Sian", 19, "PC"],
["Gethin", 17, "PC"] ]
print(my2DList[0][0])
# Este código produce 'Johnny'. Es el nombre de Juanito de la lista 0 (primer corchete), elemento 0 (segundo corchete)
print(my2DList[1][2])
# Este código muestra 'PC'. Es la preferencia informática de Sian de la lista 1 (primer corchete), elemento 2 (segundo corchete)
Podemos editar valores en una lista 2D de la misma manera que variables y listas 1D. Sólo tienes que cambiar el valor a los nuevos números de índice de fila y columna.
👉 En este ejemplo, Sian se ha unido al lado oscuro, así que vamos a actualizar su preferencia informática a Linux.
my2DList = [ ["Johnny", 21, "Mac"],
["Sian", 19, "PC"],
["Gethin", 17, "PC"] ]
my2DList[1][2] = "Linux"
# La línea anterior cambia el elemento 2 de la lista 1 de PC a Linux
print(my2DList[1])
# Utilizo esta línea para mostrar la lista 1 y comprobar que el cambio se ha producido correctamente.
*Primero, borra cualquier otro código de tu fichero main.py. Copia cada fragmento de código en main.py haciendo clic en el icono de copia en la parte superior derecha de cada cuadro de código. A continuación, pulsa run y comprueba qué errores se producen. Corrige los errores y pulsa “run” de nuevo hasta que estés libre de errores. Haz clic en “Respuesta” para comparar tu código con el correcto.
👉 ¿Qué es un error ‘out of range’?
my2DList = [ ["Johnny", 21, "Mac"],
["Sian", 19, "PC"],
["Gethin", 17, "PC"] ]
print(my2DList[0][3])
El reto de hoy es crear un cartón de bingo. Oh, sí, porque la programación no es sólo para vosotros, jóvenes y modernos gatos. 😆
En fin, tu reto es habilitar “juegos de azar para mayores” (aka Bingo), y lo conseguirás así:
Ejemplo:
