2016-08-25 2 views
2

ich eine Liste der Liste in eine Liste von Tupeln zu formatieren müssen, das gewünschte Ergebnis ist:Add-Wert in Tupel (zip() innerhalb for-Schleife) in Python

>>A = [[1, 2, 3]] 
>>A.append([1, 2, 3]) 
>>A.append([1, 2, 3]) 
>>print A 
[[1, 2, 3], [1, 2, 3], [1, 2, 3]] 

Und meine gewünschte Ausgabe ist:

>>zip (A[0],A[1],A[2]) 
[(1, 1, 1), (2, 2, 2), (3, 3, 3)] 

Nun stell dir vor, dass die Liste A sehr groß ist und ich kann nicht diesen Prozess tun eine kleine Zeile Code zu schreiben, wenn ich Schleife versuchen, die zip() Funktion das Ergebnis ist wie folgt:

>>print zip (A[0],a) 
>>[(1, (1, 1, 1)), (2, (2, 2, 2)), (3, (3, 3, 3))] 

Die böse Lösung, die ich kam war eine rekursive Schleife:

>>B = zip(A[0]) 
>>for idx,val in enumerate(A): 
    for idx1,val1 in enumerate(B): 
     B[idx1] = val1 + (A[idx][idx1],) 

, dass das gewünschte Ergebnis liefert:

[(1, 1, 1, 1), (2, 2, 2, 2), (3, 3, 3, 3)] 

Daher ist es ein richtiger/Reinigungsmittel/schneller Weg, um dieses Problem zu lösen ?

(Weil es ein eingebettetes Paket von Python ist ich nicht Pandas Mutter NumPy kann in einer frühen Version erlaubt ist)

Antwort

Verwandte Themen