Angenommen ich habe eine Liste von Tupeln, und ich will konvertieren, um mehrere Listen.
Beispielsweise die Liste von Tupeln ist
[(1,2),(3,4),(5,6),]
Gibt es eine eingebaute Funktion in Python, die konvertieren es um:
[1,3,5],[2,4,6]
Dies kann ein einfaches Programm. Aber ich bin einfach nur neugierig, über die Existenz eines solchen eingebaute Funktion in Python.
Den built-in-Funktion
zip()
wird fast tun, was Sie wollen:Der einzige Unterschied ist, dass man tuples anstelle von Listen. Sie können konvertieren Sie Sie in Listen mit
Aus der python docs:
Konkretes Beispiel:
Oder, wenn Sie wirklich wollen, Listen:
Verwenden:
franklsf95 geht für die Leistung in seine Antwort und entscheidet sich für
list.append()
, aber Sie sind nicht optimal.Hinzufügen Liste Verstehens, landete ich mit die folgenden:
Dies gab das Ergebnis:
Also, wenn Sie nach Leistung, sollten Sie wahrscheinlich verwenden
zip()
obwohl die Liste Verstehens sind nicht zu weit hinter. Die Leistungappend
ist eigentlich ziemlich schlecht im Vergleich.Hinzufügen zu Claudiu und Claudiu s Antwort und da die Karte muss importiert werden from itertools in python 3 verwenden Sie auch eine Liste Verständnis wie:
Trotz
*zip
mehr Pythonic, die den folgenden code hat eine viel bessere Leistung:Auch, wenn die ursprüngliche Liste
zs
leer ist,*zip
erhöhen, aber dieser code ordnungsgemäß verarbeiten kann.Ich lief nur ein schnelles experiment, und hier ist das Ergebnis:
Läuft es mehrere Male
append
ist 3x - 4x schneller alszip
! Das test-Skript ist hier:Meine Python Version:
Neben Claudiu Antwort, die Sie verwenden können:
Bearbeitet nach @Peyman mohseni kiasari
(1, 3, 5)
und(2, 4, 6)
keine Listen. sollten Sie verwendenmap(list, zip(*[(1, 2), (3, 4), (5, 6)]))