2016-03-24 12 views
-1

Das sind meine Listen. Wie füge ich jede Nummer von list1 zu jeder Nummer in list2 hinzu?Wie füge ich jede Nummer aus einer Liste zu einer Nummer hinzu?

list1 = [1,2,3,4,5] 
list2 = [6,7,8,9,10] 
outcomelist = [7,8,9,10,11,8,9,11,12,9,10,11,12,13,10,11,12,13,14,1,12,13,14,15] 
+3

dort Hallo, willkommen in der Gemeinschaft Stackoverflow. Diese Frage wurde bereits beantwortet http://stackoverflow.com/questions/1720421/how-to-append-list-to-second-list-concatenate-lists – ssuperczynski

+0

Also, was ist Ihre Frage? Können Sie Ihre Frage mit dem Code, den Sie bisher versucht haben, aktualisieren oder ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) zur Frage hinzufügen? – Kasramvd

+4

Ich weiß nicht, ob Sie '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]' oder '55' oder '[7, 9, 11, 13, 15 erwarten ] '... – TigerhawkT3

Antwort

1

Verwenden zip build-in-Funktion und list comprehension

[x + y for x, y in zip([1,2,3,4,5], [6,7,8,9,10])] 

>>> [7, 9, 11, 13, 15] 

oder nicht tun zipping, wenn Sie alle alle summieren wollen:

[x + y for x in [1,2,3,4,5] for y in [6,7,8,9,10]] 

>>> [7, 8, 9, 10, 11, 8, 9, 10, 11, 12, 9, 10, 11, 12, 13, 10, 11, 12, 13, 14, 11, 12, 13, 14, 15] 
+0

Dies war hilfreich, aber wenn gewünscht, die endgültige Liste so aussehen [7,8,9,10,11,8,9,11,12,9,10,11,12,13,10 , 11,12,13,14,1,12,13,14,15]? –

+0

@MarekTran, aktualisiert –

1

Wenn Sie ein bauen wollen neue Liste, die Sie tun können:

list3 = [x + y for x, y in zip(list1, list2)] 

Wenn Sie, was Sie aktualisiert list2 möchten, können Sie enumerate verwenden canalso den Index und aktualisiert die Liste zuzugreifen:

for idx, tuple in enumerate(zip(list1, list2)): 
    list2[idx] = tuple[1] + tuple[0] 
+0

Dies war hilfreich, aber wenn gewünscht, die endgültige Liste wie folgt aussehen [7,8,9,10,11,8,9,11,12,9,10,11,12,13,10, 11,12,13,14,1,12,13,14,15]? –

0

python3

add=lambda x,y:x+y 
list(map(add,list1,list2))#[7, 9, 11, 13, 15] 

import operator 
list(map(operator.add,list1,list2))#[7, 9, 11, 13, 15] 

Liste comperhension:

[x+y for x,y in zip(list1,list2)]#[7, 9, 11, 13, 15] 
[sum([x,y]) for x,y in zip(list1,list2)]#[7, 9, 11, 13, 15] 
0

Verwenden itertools.product, um alle möglichen Paare zu machen:

>>> import itertools 
>>> list1 = [1,2,3,4,5] 
>>> list2 = [6,7,8,9,10] 
>>> [x + y for (x,y) in itertools.product(list1, list2)] 
>>> resultlist 
[7, 8, 9, 10, 11, 8, 9, 10, 11, 12, 9, 10, 11, 12, 13, 10, 11, 12, 13, 14, 11, 12, 13, 14, 15] 

Sie können dies auf mehrere Listen erweitern:

>>> list1 = [1,2,3] 
>>> list2 = [4,5,6] 
>>> list3 = [7,8,9] 
>>> [x + y + z for (x, y, z) in itertools.product(list1, list2, list3)] 

Oder auch variable Anzahl von Listen:

>>> [sum(items) for items in itertools.products(*list_of_lists)] 
Verwandte Themen