Python - Python matrices, listas y funciones.

 
Vista:

Python matrices, listas y funciones.

Publicado por luisgarc (4 intervenciones) el 31/12/2020 09:35:07
Muy buenas, ayer vi que un chico ponía un problema de Python y lo pudo resolver aquí. Yo estoy teniendo problemas también con un ejercicio, a ver si alguien me puede ayudar, lo agradecería muchísimo:

El ejercicio pide:

"Escribe una función llamada cruz que tome como parámetros de entrada una matriz m de dimensión NxN (N constante conocida) y una lista v de N valores entre 0 y N-1. La función devolverá una nueva lista de valores calculados de la siguiente forma: El elemento i de la nueva listá será el resultado de sumar los elementos de m correspondientes a la columna v[i] y restar los de la fila v[i]. La función también devolverá la suma de todos los elementos de matriz. Ejemplo: (para N=3)

Introduce una matriz 3x3:

7 4 3
2 9 1
3 6 4

Introduce una lista: 2 0 1

La nueva lista es [-5, -2, 7] y la suma total es 39

Nota: El primer elemento de la nueva lista es el resultado de sumar la columna 2: (3, 1, 4) y restar la fila 2: ( 3, 6, 4), resultando -5. De igual manera calcularemos los otros dos componentes de la nueva lista."

Hasta el momento he hecho esto pero solo he obtenido errores:

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
def cruz(m,v):
    m=[]
    v=[]
    n=int(input('Dime el tamaño de tu matriz cuadrada: '))
    for i in range (n):
        print('Escribe tu matriz',n,'por',n,)
        a=['']*n
        m.append(a)
    for i in range (0,n-1):
        numv=int(input('Escribe la lista: '))
        v.append(numv)
    c=[]
    filas=len(m)
    columnas=len(m[0])
 
    for i in range (filas):
        sum1=sum(m[i])
        c[i].append(sum1)
    for j in range (columnas):
        sum2=sum(fila[i] for fila in m)
    c.append(sum2-sum2)
 
    return c
 
def summing(suma):
    suma=0
    for num in m:
        suma+=num
    return suma
 
 
t=int(input('Escribe la matriz: '))
l=int(input('Escribe la lista: '))
 
print(cross(t,l(summing(suma)))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de katas
Val: 1.703
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Python matrices, listas y funciones.

Publicado por katas (77 intervenciones) el 31/12/2020 14:19:20
Hola, haber si te sirve este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
matriz=[
    [7, 4, 3],
    [2, 9, 1],
    [3, 6, 4]
]
 
sumaFilas = lambda matriz: [sum(i) for i in matriz]
sumaColumnas = lambda matriz: [sum(i) for i in zip(*matriz)]
 
filas=sumaFilas(matriz)
columnas=sumaColumnas(matriz)
 
resultado=[columnas[i] - filas[i] for i in reversed(range(len(matriz)))]
print(resultado) # [-5, 7, -2]
 
sumaTotal=sum(filas)
print(sumaTotal) # 39
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Python matrices, listas y funciones.

Publicado por luisgarc (4 intervenciones) el 02/01/2021 08:54:09
Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar