2012-04-12 16 views
0

So habe ich eine Liste von Listen wie folgt aus:Wie die Liste der Listen zu bekommen

mult_list = [ [1,2,3],[9,10,11].....[..,..,..]] 

, was ich will, ist etwas, das mich 3 Listen

where list_1 = [1,9...1st ele of each list] 
     list_2 = [2,10... 2nd ele ] 
    ..nth_list = [nth element of each_list] 

So zurückkehren kann, ist dies für Beispiel sake .. Die mul_list kann eine beliebige Anzahl von festen Spalten in der Liste haben. num columns ist 3 in unserem Beispiel.

SO etwas, wo Sie es als eine Matrix vorstellen können .. und ich suche alle Elemente in der gleichen Spalte in der ersten Liste zu haben. Was ist der pythonische Weg, dies zu tun? Dank

Antwort

2

zip finden Sie die Antwort als eine Liste von Tupeln erhalten. Wenn Sie eine Liste von Listen wollen, tun

map(lambda *row: list(row), *mult_list) 

EDIT: kompakter,

map(list,zip(*mult_list)) 
+2

Meinst du map (liste, zip (* mult_list)) '? – Avaris

+0

ah. Ja, das ist viel besser. Ich habe den ganzen Tag mit Lambda-Funktionen programmiert, sie stecken in meinem Kopf fest. – austin1howard

3

Versuchen Sie dieses:

>>> zip(*mult_list) 
1

Die eingebaute Funktion zip tut genau das:

>>> zip([1,2,3,4,5],[6,7,8,9,10]) 
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)] 
1

können Sie mit Reißverschluss (list1, list2);

mult_list = [[1,2,3], [9,10,11]]

so für das, werden Sie das Ergebnis von [(1,9) erhalten, (2,10), (3,10)]

Verwandte Themen