2017-06-27 7 views
1

Wenn ich eine Matrix habenHinzufügen Liste der Liste außer letzten Liste

[[1,2,3],[4,5,6],[7,8,9]] 

Wie kann ich eine Schleife über alle Einträge mit Ausnahme der letzten Liste zusammenzufassen? Das ist die for-Schleife vor der endgültigen Liste zu stoppen. In diesem Fall sollte der Ausgang 21 (=1+2+3+4+5+6) sein.

Antwort

2

Eine Möglichkeit, die Liste mit Verständnis und Schneiden:

sum([sum(i) for i in a[:-1]]) 

oder als Generator und Slicing als idjaw erwähnt:

sum(sum(i) in for i in a[:-1]) 

Ausgang:

21 
+2

Ich hatte den Eindruck, die Generator wäre schneller, aber mein Zeitvergleich zeigt, dass 'sum (map (sum, d [: - 1])) 'tatsächlich die Generator-Approximation übertrifft CH. Nur weil es Spaß macht, eine mikrooptimierte Lösung anzubieten, nur weil es Spaß macht. : P – idjaw

Verwandte Themen