2016-09-24 4 views
0

Hallo Ich versuche, zwei Listen sequenziell in Unterlisten zusammenzuführen. Ich frage mich, ob dies ohne List Comprehensions oder eine Lambda-Operation möglich ist, da ich immer noch lerne, mit diesen Ansätzen zu arbeiten. DankeElemente aus separaten Listen in verschachtelte Listen zusammenführen

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

#desired output 
c = [0,4],[1,5],[2,6],[3,7] 
+0

Uhh, meinst du 'c = [[0,4], [1,5], [2,6], [3,7]]'? – Li357

+2

'[list (t) für t in zip (a, b)]' Dies wird bei Bedarf leicht in eine ausführlichere Schleife umgewandelt. –

+0

Das ist großartig! Danke an alle für die Antworten. Sehr hilfreich. –

Antwort

1

Ein Ansatz, der nicht lambda s oder Listenkomprehensionen mit sich bringt (nicht sicher, was das Problem mit list-Comps ist) mit map wäre:

c = list(map(list, zip(a, b))) 

Diese erste zip s die listet zusammen auf, erstellt dann eine list Instanz für jedes Tupel, das von zip mit map generiert wird, und wickelt es in list auf, damit map seinen gesamten Inhalt ergibt:

print(c) 
[[0, 4], [1, 5], [2, 6], [3, 7]] 

Dies, zumindest meiner Ansicht nach, ist weniger verständlich als das entsprechende Verständnis John in einem Kommentar zur Verfügung gestellt.

0

Hier ist eine Lösung für Anfänger!

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

for i in range(min(len(a), len(b))): 
    c.append([a[i], b[i]]) # writing [a[i], b[i]] creates a new list 

print(c)