2017-10-13 4 views
1

Ich habe zwei Listen von Listen wie folgt. So führen sie, ich in der Regel die folgenden:Zipp Listen in Python durch Iterieren durch eine Liste von Listen

>>>from itertools import imap, ilist 

>>>a = [1,2,3] 
>>>b = [4,5,6] 
>>> c = list(imap(list,izip(a,b))) 
>>> c 
[[1, 4]], [2, 5], [3, 6]] 

aber jetzt habe ich eine Liste der Liste wie folgt:

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

Wie iterieren ich durch jede Liste und gibt sie an die izip Funktion zu erhalten, die folgende Ausgabe:

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

Wo kommt die letzte Zeile der Liste der Listen stammen aus? Vielleicht klären Sie die Eingabe ein wenig. – atru

+0

Ja..wenn das es klarer macht – Amistad

+0

der Punkt ist, dass es n Anzahl von Zeilen geben kann .. ich möchte durch jede Zeile durchlaufen und erhalten die endgültige Ausgabe wie gezeigt – Amistad

Antwort

3

Antwort für editierte Frage:

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

Mit Karte und Zip:

>>> map(list,zip(*input_list)) 
[[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

Mit imap und izip:

>>> list(imap(list,list(izip(*input_list)))) 
[[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

Antwort für vorherige Frage:

Durch Liste Verständnis mit und zwei für Schleifen:

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


out_list = [[] for i in range(len(input_list))] 
for each_row in input_list: 
    for i in range(len(each_row)): 
     out_list[i].extend(each_row[i]) 
print out_list 

Ausgabe:

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

..i haben meine Frage durch die Vereinfachung der Eingabe bearbeitet ..können Sie bitte Ihre Antwort ändern? – Amistad

+0

Die Antwort @Amistad hinzugefügt –

0

Ich denke, u so etwas wie dieses brauchen:

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

for i in range(len(input_list)): 
    temp = [] 
    for list in input_list: 
     temp.append(list[i]) 
    result.append(temp) 
print result 

Ergebnis wird sein:

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