Wie kann ich die entsprechenden Elemente aus mehreren Zahlenlisten hinzufügen?

Ich habe einige Listen von Zahlen:

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

Wie kann ich diese Elemente hinzufügen, vorausgesetzt, dass alle Listen, die ich verwende, die gleiche Länge haben?

Hier ist die Art von Ausgabe, die ich gern dazu hätte, dies zu den oben genannten Listen zu machen.

 [6, 9, 12, 15, 18] 

Ich weiß, dass ich eine Schleife irgendwie brauche – aber wie kann ich es elegant machen?

5 Solutions collect form web for “Wie kann ich die entsprechenden Elemente aus mehreren Zahlenlisten hinzufügen?”

Versuchen Sie diesen funktionalen Stilcode:

 >>> map(sum, zip(*lists)) [6, 9, 12, 15, 18] 

Die zip Funktion entspricht Elementen mit demselben Index.

 >>> zip(*lists) [(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7)] 

Dann wird sum auf jedes Tupel angewendet, indem man die map .

Sehen Sie es online online: ideone


Beachten Sie, dass in Python 3.x map nicht mehr eine Liste zurückgibt. Wenn Sie die Liste benötigen, sehen Sie bitte die folgende Frage:

  • Eine Karte abrufen (), um eine Liste in Python 3.x zurückzugeben

(Sie können einfach list ).

Mit numpy :

 >>> seq = np.array([ ... [1,2,3,4,5], ... [2,3,4,5,6], ... [3,4,5,6,7]]) >>> np.sum(seq,axis=0) array([ 6, 9, 12, 15, 18]) 
 >>> lis=[[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]] >>> [sum(x) for x in zip(*lis)] [6, 9, 12, 15, 18] 

Angenommen:

 a = [1,2,3,4,5] b = [2,3,4,5,6] c = [3,4,5,6,7] 

Mach einfach das:

 [sum(n) for n in zip(*[a, b, c])] 

Wie wäre es mit:

 a = [1,2,3,4,5] b = [2,3,4,5,6] c = [3,4,5,6,7] s = map(sum, zip(a,b,c)) 
Python ist die beste Programmiersprache der Welt.