Swap-Werte in einem Tupel/Liste innerhalb einer Liste in python?
Ich habe einen Tupel/Liste innerhalb einer Liste wie dieser:
[('foo','bar'),('foo1','bar1'),('foofoo','barbar')]
Was ist die Schnellste Möglichkeit in python (läuft auf einer sehr niedrigen cpu - /ram-Maschine) zu swap-Werte wie diese...
[('bar','foo'),('bar1','foo1'),('barbar','foofoo')]
curently mit:
for x in mylist:
self.maynewlist.append((_(x[1]),(x[0])))
Gibt es eine bessere oder schnellere Möglichkeit???
InformationsquelleAutor subixonfire | 2012-11-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie anzeigen:
Liste oder Verständnis:
Liste Verstehens sind bevorzugt, und angeblich deutlich schneller als die Karte, wenn die lambda ist gebraucht, aber beachten Sie, dass die list comprehension hat, eine strenge Evaluierung, das heißt es wird bewertet, sobald es gebunden ist variable, wenn Sie sich sorgen über den Speicherverbrauch verwenden generator statt:
Gibt es einige weitere details finden Sie hier: Python List Comprehension Vs. Anzeigen
Können Sie
reversed
wie diese:Anwenden, um eine Liste, die Sie verwenden können
map
oder eine Liste Verständnis:Wenn Sie interessiert sind, vor allem in der Laufzeit, der Geschwindigkeit, kann ich nur empfehlen, dass Sie ein Profil der verschiedenen Ansätze, und wählen Sie die Schnellste.
Einen ausgefallenen Weg:
Mit einem Liste Verständnis finde ich eleganter und verständlich zu bedienen separate Variablen anstelle von Indizes für eine einzelne variable, wie in der Lösung von @iabdalkader: