Forum >> Principianti >> problema matrice

Pagina: 1 2 Avanti

In una matrice come questa
m=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]

come posso fare per calcolare il risultato delle singole liste, per esempio che 1+2+3+4=10 e così via?

Grazie in anticipo
m=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]

come posso fare per calcolare il risultato delle singole liste, per esempio che 1+2+3+4=10 e così via?
Ciao caro, sappi che ci sono diversi modi per eseguire quanto chiedi.

Ti mostro una soluzione un po' prolissa, ma che ha il pregio di illustrarti per esteso i passi da seguire:
for i in m:
    # Valore somma azzerato ogni giro
    somma = 0 
    for x in i:
        somma += x
    # Ho messo print, ma puoi farci quello che vuoi
    print somma #print(somma) in py3
Spero sia tutto chiaro.
Daniele aka Palmux said @ 2015-06-29 09:46:02:
Ti mostro una soluzione un po' prolissa, ma che ha il pregio di illustrarti per esteso i passi da seguire:
Mi autocito perché mi sono dimenticato di farti vedere anche la soluzione compressa e per inciso più Pythonica:
>>> [sum(x) for x in m]
[10, 26, 42]
Ciao ciao e buona programmazione.
Daniele
grazie della soluzione. perfetto
Ti volevo fare un ultima domanda, in una matrice come faccio a scorrere le colonne invece di scorrere le righe? perché in questo modo scorro le righe vero?
--- Ultima modifica di alecos17 in data 2015-07-02 18:11:43 ---
Ti volevo fare un ultima domanda, in una matrice come faccio a scorrere le colonne invece di scorrere le righe? perché in questo modo scorro le righe vero?

Fammi un esempio, non credo di aver capito la tua domanda.
1 3 5 5
2 4 3 2
1 3 4 3

in questa invece di farla scorrere in orizzontale vorrei vedere qual è il massimo della prima colonna della seconda e così via, e il risultato dovrebbe uscirmi [2 4 5 5]



--- Ultima modifica di alecos17 in data 2015-07-02 18:17:12 ---
1 3 5 5
2 4 3 2
1 3 4 3

in questa invece di farla scorrere in orizzontale vorrei vedere qual è il massimo della prima colonna della seconda e così via, e il risultato dovrebbe uscirmi [2 4 5 5]
Non voglio sapere perché ti ritrovi per le mani un oggetto così poco "trattabile", devi ricondurlo comunque a qualcosa di leggibile per Python, come una lista. Immaginiamo di avere quindi una matrice come quella qui sotto:
m = [[1,3,5,5],[2,4,3,2],[1,3,4,3]]

ma dalla quale vuoi leggere tutte le prime colonne, poi le seconde e così via. Puoi usare numpy per questo :
>>> import numpy as np
>>> [max(i) for i in np.column_stack(m)]
[2, 4, 5, 5]

Ciao.
Daniele
Daniele aka Palmux said @ 2015-07-02 20:04:56:
1 3 5 5
2 4 3 2
1 3 4 3

in questa invece di farla scorrere in orizzontale vorrei vedere qual è il massimo della prima colonna della seconda e così via, e il risultato dovrebbe uscirmi [2 4 5 5]
Non voglio sapere perché ti ritrovi per le mani un oggetto così poco "trattabile", devi ricondurlo comunque a qualcosa di leggibile per Python, come una lista. Immaginiamo di avere quindi una matrice come quella qui sotto:
m = [[1,3,5,5],[2,4,3,2],[1,3,rime colonne, poi le seconde e così via. Puoi usare numpy per questo :
>>> import numpy as np
>>> [max(i) for i in np.column_stack(m)]
[2, 4, 5, 5]

Ciao.
Daniele

ho risolto per stampare le colonne invece delle righe, così:
in una matrice come questa

m = [[1,3,5,5],[2,4,3,2],[1,3,4,3]]

con il doppio ciclo for

for i in range(0,len(m)):

for j in range(0,len(m[ i ])):

print m[ j ] [ i ]

comunque tratto questi argomenti in quanto alla mia università il professore di informatica usa le matrici come argomento di esame





--- Ultima modifica di alecos17 in data 2015-07-09 16:24:32 ---
ho risolto per stampare le colonne invece delle righe, così:
Non ti piaceva la mia soluzione?


comunque tratto questi argomenti in quanto alla mia università il professore di informatica usa le matrici come argomento di esame
Immagino che fosse dettata da altri, in bocca la lupo.

Cya


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.