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.
InformationsquelleAutor der Frage xiaohan2012 | 2011-11-10
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
InformationsquelleAutor der Antwort Sven Marnach
Aus der python docs:
Konkretes Beispiel:
Oder, wenn Sie wirklich wollen, Listen:
InformationsquelleAutor der Antwort Claudiu
Verwenden:
InformationsquelleAutor der Antwort Artsiom Rudzenka
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.InformationsquelleAutor der Antwort Baldrickk
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:
InformationsquelleAutor der Antwort Quickbeam2k1
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:
InformationsquelleAutor der Antwort franklsf95