¡Descubre Cómo Declarar y Manipular Arreglos Bidimensionales en Python Fácilmente!post-template-default single single-post postid-46 single-format-standard et_pb_button_helper_class et_fixed_nav et_show_nav et_secondary_nav_enabled et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_left et_pb_footer_columns4 et_cover_background et_pb_gutter et_pb_gutters3 et_right_sidebar et_divi_theme et-db
771 715 4434

A menudo las tareas tienen que almacenar la tabla de datos rectangular. Tales tablas se llaman matrices o matrices bidimensionales. Un arreglo bidimensional es equivalente a una matriz en matemáticas. En Python, cualquier tabla se puede representar como una lista de listas (una lista, donde cada elemento es a su vez una lista). Las listas son uno de los tipos básicos que provee Python y uno de los más útiles.

Estructura y Acceso a Elementos

Un arreglo bidimensional organiza los datos en filas y columnas, similar a una tabla. Los elementos de un arreglo bidimensional se definen por sus posiciones, que se especifican mediante índices de fila y columna. Esta estructura facilita el acceso y la manipulación de puntos de datos individuales.

Columna 0 Columna 1 Columna 2
Fila 0 elemento[0][0] elemento[0][1] elemento[0][2]
Fila 1 elemento[1][0] elemento[1][1] elemento[1][2]
Fila 2 elemento[2][0] elemento[2][1] elemento[2][2]

La tabla anterior sirve como ejemplo de un arreglo bidimensional o matriz. Como puedes observar, declaramos un arreglo bidimensional con dimensiones 3 x 3. Para ilustrar cómo recuperar valores de esta tabla, consideremos un ejemplo:

El primer elemento de a aquí - a[0] - es una lista de números [1, 2, 3] . El primer elemento de esta nueva lista es a[0][0] == 1 ; además, a[0][1] == 2 , a[0][2] == 3 , a[1][0] == 4 , a[1][1] == 5 , a[1][2] == 6 .

Creación e Inicialización de Arreglos Bidimensionales

El Desafío de la Repetición de Listas

Supongamos que se dan dos números: el número de filas de n el número de columnas m . Debe crear una lista de tamaño n × m , rellenada con, por ejemplo, ceros. Sin embargo, llenar un arreglo bidimensional manualmente puede resultar laborioso y complicado.

Lea también: IVA 21% Excel

Un error común al intentar inicializar un arreglo bidimensional con valores por defecto (como ceros) es usar la repetición de listas de esta manera: lista = [[0] * m] * n.

Esto se puede ver fácilmente si establece el valor de a[0][0] en 5 , y luego imprime el valor de a[1][0] - también será igual a 5. El motivo es, [0] * m devuelve solo una referencia a una lista de m ceros, pero no una lista. La repetición posterior de este elemento crea una lista de n elementos que hacen referencia a la misma lista (al igual que la operación b = a para listas no crea la nueva lista), por lo que todas las filas en la lista resultante son en realidad las mismas cuerda. Por lo tanto, no se puede crear una lista bidimensional simplemente repitiendo una cadena.

Formas Correctas de Inicializar

Entonces, ¿qué hacer? En este caso, cada elemento se crea independientemente de los demás. Una de las formas más eficientes y "pythónicas" es usar generadores anidados (también conocidos como compresiones de lista anidadas).

Puede usar generadores anidados para crear matrices bidimensionales, colocando el generador de la lista que es una cadena, dentro del generador de todas las cadenas. Pero la lista interna también se puede crear usando, por ejemplo, dicho generador: [0 for j in range(m)] . Aquí hay otra solución, que repite listas para construir las siguientes filas de la lista.

El caso es que si el número 0 se reemplaza por una expresión que depende de i (el número de línea) j (el número de columna), se obtiene la matriz rellenada de acuerdo con alguna fórmula. Por ejemplo, en un conjunto donde hay n = 5 filas, m = 6 columnas, y el elemento con el índice de filas i e índice de columnas j se calcula con la fórmula a[i][j] = i * j .

Lea también: Guía IVA reducido

Procesamiento e Iteración de Arreglos Bidimensionales

Para procesar una matriz bidimensional, normalmente utiliza bucles anidados. El primer ciclo itera a través del número de fila, el segundo ciclo recorre los elementos dentro de una fila. Ya hemos intentado explicar que una variable for-loop en Python puede iterar no solo sobre un range() , sino generalmente sobre todos los elementos de cualquier secuencia. Las secuencias en Python son listas y cadenas (y algunos otros objetos que aún no hemos encontrado).

Ejemplo de Manipulación de Diagonal

Supongamos que le dan una matriz cuadrada (una matriz de n filas n columnas). Y supongamos que tiene que establecer elementos de la diagonal principal igual a 1 (es decir, aquellos elementos a[i][j] para los cuales i==j ), para establecer elementos por encima de esa diagonal igual a 0, y para establecer elementos debajo de esa diagonal igual a 2. En este caso, puede hacerlo manualmente estableciendo a[0][0] = 1 , a[0][1] = 0 y así sucesivamente, pero no lo hará manualmente para arreglos de 100 filas y 100 columnas , que a menudo son el caso. Estamos ansiosos por mostrarle varias formas de resolver este problema.

Primero, nótese que los elementos que se encuentran sobre la diagonal principal - son los elementos a[i][j] para los cuales ij . Por lo tanto, podemos comparar los valores i y j , que determinan el valor de a[i][j] . Este algoritmo es lento: utiliza dos bucles y para cada par (i,j) ejecuta una o dos if instrucciones. Si complicamos el algoritmo, podremos hacerlo sin una declaración condicional. Luego llene con ceros todos los elementos sobre la diagonal principal. Para hacer esto, para cada fila con el número i necesita asignar un valor a a[i][j] para j = i+1 , ..., n-1 .

Entrada de Datos de Usuario en Arreglos Bidimensionales

Digamos que un programa toma una matriz bidimensional de entrada en forma de n filas, cada una de las cuales contiene m números separados por espacios. La pregunta es: ¿Cómo fuerza al programa a leerlo?

Arreglos de Múltiples Dimensiones

Realmente no hay límite a la hora de construir matrices, por lo que se podrían hacer de tantas dimensiones como se quiera. Por ejemplo, una matriz tridimensional podría verse como [[[0, 1], [0, 1]], [[0, 1], [0, 1]]].

Lea también: ¿Cómo localizar tus XML del SAT?

tags: #como #declarar #un #arreglo #bidimensional #en