es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo la suma de cada diagonal de una matriz 2D en Python

Imagínate que tengo una matriz n x n.
Quiero obtener la suma de cada diagonal y mostrarla al usuario.
Para n=3, puedo tener:

matriz =
[[1,2,3],
[1,2,3],
[1,2,3]]

Obtendría esto impreso:

suma1 = 3
suma2 = 5
suma3 = 6
suma4 = 3
suma5 = 1

Quiero implementarlo en Python. ¡Gracias por ayudar!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Claro, aquí tienes una implementación en Python:

    # definir la matriz
    matrix = [[1,2,3],
              [1,2,3],
              [1,2,3]]
    
    # obtener las dimensiones de la matriz
    n = len(matrix)
    
    # inicializar listas vacías para almacenar las sumas de las diagonales
    diagonal_sumas1 = []
    diagonal_sumas2 = []
    
    # iterar sobre las filas y columnas de la matriz
    for i in range(n):
        # obtener los elementos de la diagonal
        elem_diagonal1 = matrix[i][i]
        elem_diagonal2 = matrix[i][n-i-1]
    
        # agregar los elementos de la diagonal a las listas de sumas de diagonales
        diagonal_sumas1.append(elem_diagonal1)
        diagonal_sumas2.append(elem_diagonal2)
    
    # calcular e imprimir las sumas de las diagonales
    print('suma1 =', sum(diagonal_sumas1))
    print('suma2 =', sum(diagonal_sumas2))
    print('suma3 =', sum([fila[i] for i, fila in enumerate(matrix)]))
    print('suma4 =', sum([fila[::-1][i] for i, fila in enumerate(matrix)]))
    print('suma5 =', sum([fila[-i-1] for i, fila in enumerate(matrix)]))
    

    Esto debería imprimir las mismas sumas de las diagonales que en el ejemplo que proporcionaste. Ten en cuenta que también he agregado tres sumas adicionales para la otra diagonal y las columnas de la matriz.

Comments are closed.