Una lista bidimensional coloca otras listas en una lista como elementos de la lista, que es un anidamiento de listas . Aquellos que han estado expuestos a C o C++ pueden comprender el concepto de matrices. En Python, las matrices existen en bibliotecas de terceros. Por lo tanto, si queremos utilizar métodos de matrices en Python sin instalar complementos de terceros, debemos utilizarlos. una lista bidimensional.
De hecho, los elementos de la lista pueden ser de cualquier tipo de datos. Veamos un ejemplo:
mi_lista=[[1,2,3,4,5],'dotcpp',{1,2,3,},('www','dotcpp','com')]print(mi_lista)
La salida es:
[[1,2,3,4,5],'puntocpp',{1,2,3},('www','puntocpp','com')]
Esta lista contiene listas, cadenas, conjuntos y tuplas. Cuando todos los elementos de una lista son listas, es nuestra lista bidimensional más utilizada. A continuación se presentarán varios métodos para crear y acceder a listas bidimensionales.
El método de creación directa es ingresar el nombre de la lista directamente después de definirlo. Definamos un teclado pequeño y simple, es decir, 1-9:
mi_lista=[[1,2,3],[4,5,6],[7,8,9]]imprimir(mi_lista)
La salida es:
[[1,2,3],[4,5,6],[7,8,9]]
Cuando lo entendemos, podemos entenderlo así:
Como se puede ver en la figura, my_list [0] corresponde a [1,2,3], por lo que cuando accedemos a 1, sus coordenadas correspondientes son (0,0), y podemos acceder a él a través del índice, es decir, my_list[0][0], su valor corresponde a 1, y se accede a otros valores de la misma forma. Por ejemplo, el método de acceso correspondiente al elemento 9 es my_list[2][2].
La creación de una lista también se puede lograr usando un bucle, generalmente usando un bucle for. Creemos una lista bidimensional de 6 * 6. El código es el siguiente.
my_list=[]#Primero cree una lista principal paraiinrange(6):#Recorra 6 veces y cree una nueva lista para cada elemento de la lista principal por turno j=[]#Primero cree una nueva lista y agréguela a la lista principal list my_list. append(j)forminrange(1,7):j.append(m)#Agregar elementos a la sublista print(my_list)#Salida
La salida es:
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3, 4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
El resultado de salida real debe estar en una línea. Está organizado de esta manera para facilitar la comprensión de todos. También puede intentar crear una lista bidimensional a través de un bucle while.
También se pueden crear listas bidimensionales utilizando listas por comprensión. Acabamos de aprender sobre listas por comprensión en la sección anterior, por lo que podemos usar este método directamente para simplificar nuestro código.
Una vez más creamos una lista bidimensional con seis filas y seis columnas. Su código es relativamente simple.
mi_lista=[[iforiinrange(1,7)]forjinrange(1,7)]print(mi_lista)
La salida es:
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3, 4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
Este método no solo ahorra tiempo sino que también optimiza el código. Equivale a crear 6 listas en un bucle y asignar 6 valores. Finalmente, se colocan en una lista para formar una lista bidimensional.
Aprendamos más a través de un ejemplo.
Queremos crear una lista de 6 * 6 y luego los valores que contiene se seleccionan aleatoriamente del 1 al 100. El código es el siguiente:
importrandom#random es un módulo en la biblioteca del sistema y se puede llamar en cualquier momento. Aquí hay una breve introducción my_list=[]#Primero cree la lista paraiinrange(6):#Cree 6 listas en un bucle y colóquelas en my_list j. =[]mi_lista.appen d(j)forkinrange(6):c=random.randint(1,100)#Llame a un método aleatorio para generar números aleatorios y asigne el valor del número aleatorio generado a cj.append(c)#Agregue el valor de c Añadir a la lista j imprimir(mi_lista)
La salida es:
[[52,83,15,35,54,60],[17,61,77,99,60,50],[88,81,9,61,76,95],[21,52,20, 49,10,61],[94,81,48,27,80,9],[1,94,57,66,95,97]]
La idea de esta pregunta es consistente con el segundo método anterior. Los estudiantes que no dominan la derivación de listas pueden usar este método en la etapa inicial, en comparación con el ejemplo anterior, agrega una función de valor aleatorio.
Con respecto a la lista bidimensional, esto es muy importante para los estudiantes que quieran participar en la competencia, ya sea que se encuentren con el problema del laberinto o el problema de la 2n reina, no pueden prescindir del uso de la lista bidimensional. Lo presentaré brevemente aquí. Como comprensión preliminar, habrá explicaciones sobre estos dos tipos de preguntas en las siguientes preguntas de la competencia. Por supuesto, también podemos ir más allá de la lista bidimensional.