[ Foro de Python ]

Duda bucle for

17-Jan-2023 01:05
Invitado (diego)
2 Respuestas

m=[['1','2','3','4','5','6','7'],['8','9','10','11','12','13','14'],['15','16','17','18','19','20','21'],['22','23','24','25','26','27','28'],['29','30','31','32','33','34','35'],['36','37','38','39','40','41','42'],['43','44','45','46','47','48','49']]
coord=[[1,2],[4,1],[2,3],[4,4],[3,3]]
for i in coord:
   m[i[0]][i[1]]='*'

¿Alguien puede explicarme como toma los valores?
La solución se que es: [['1', '2', '3', '4', '5', '6', '7'], ['8', '9', '*', '11', '12', '13', '14'], ['15', '16', '17', '*', '19', '20', '21'], ['22', '23', '24', '*', '26', '27', '28'], ['29', '*', '31', '32', '*', '34', '35'], ['36', '37', '38', '39', '40', '41', '42'], ['43', '44', '45', '46', '47', '48', '49']] .... pero no entiendo como llega a ello. No entiendo lo de m[i[0]][i[1]]='*'. Gracias!


19-Jan-2023 18:09
Invitado (emilio)

hola diego

con el for lo que haces es recoger una lista de coord que tiene dos números

con i[0] tienes el primer número y con i[1] el segundo

cuando llamas a m,
con el primer número eliges una de las siete listas de m
con el segundo eliges uno de las siete elementos que contiene cada lista
y elegida la lista y el elemento, ahí pones un '*'

también se puede hacer el for tal que ...

for x, y in coord:
   m[x][y] = '*'

saludos ;-)


16-Mar-2023 22:09
Invitado (Alejandro Andrade)

El código que has proporcionado define una matriz 'm' de 7 filas por 7 columnas, donde cada elemento de la matriz es un número en forma de cadena de caracteres. También define una lista de coordenadas 'coord' que contiene las coordenadas de algunos elementos de la matriz que deben ser reemplazados por un carácter de asterisco ('*').

El bucle 'for' itera sobre cada par de coordenadas '(i,j)' en la lista 'coord'. En cada iteración, el valor correspondiente de la matriz m en la posición '(i, j)' se establece en el carácter de asterisco ('*'), utilizando la sintaxis 'm[i[0]][i[1]]='*''.

Por ejemplo, en la primera iteración del bucle, 'i' tiene el valor '[1,2]', lo que significa que queremos cambiar el elemento en la fila 1, columna 2 de la matriz 'm' a '*'. Esto se hace con la instrucción 'm[i[0]][i[1]]='*'', que es equivalente a 'm[1][2]='*''. Luego, en la siguiente iteración del bucle, el siguiente par de coordenadas '[4,1]' se usa para reemplazar el elemento en la fila 4, columna 1 de la matriz 'm' con un asterisco, y así sucesivamente hasta que todas las coordenadas en la lista 'coord' hayan sido procesadas.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)