Methode zum Sortieren einer Liste von Listen?
Habe ich eine Liste von Listen (kann nicht sein-Tupeln, da ich zu generieren Sie dynamisch) und es ist strukturiert als eine Liste von Listen eine int-und eine float-etwa so:
[[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]
Ich möchte, um es sortiert, aber ich habe nur geschafft, die eingebaute Sortierfunktion zu Sortieren, indem das erste element der Listen oder nichts tun, aber ich brauche, um Sie zu Sortieren, indem das zweite element der Liste und möchte ich nicht implementieren, meine eigenen Sortier-Funktion. So ein Beispiel, was ich wollen würde ist:
[[1,1.0345],[3,4.89],[2,5.098],[2,5.97]]
Könnte mir jemand sagen, wie man eine der eingebauten Funktionen sortiert, dies zu tun?
InformationsquelleAutor user381261 | 2011-03-05
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pass die
key
argument.Ich glaube nicht, dass ich verwendet habe
sort
da haben wirsorted
. Aberoperator.itemgetter
ist besser als das schreiben Ihrer eigenen lambda.Ich bin echt neugierig. Warum ist der Betreiber.itemgetter überlegen? Mein Instinkt ist, zu schreiben lambda. Es ist kürzer, mehr Mehrzweck -, und nicht um ein import eines Moduls-ich verwende selten. itemgetter scheint zu 30% schneller oder so, gebe ich zu, aber es ist unwahrscheinlich, dass es einen Engpass im echten code.
gut ich habe eigentlich das Sortieren einer Liste von zahlen, die ich analysiert aus einer Datei mit 1,8 mil-Einträge, so dass die 30% beschleunigen wird geschätzt, in meinem Fall.
x = [[[5,3],1.0345],[[5,6],5.098],[[5,4],4.89],[[5,1],5.97]] Mit einer Liste wie diese ist, können wir das Sortieren mit
itemgetter()
mit Bezug auf die Elemente in x[0][1] ?InformationsquelleAutor Ignacio Vazquez-Abrams
InformationsquelleAutor Senthil Kumaran
Wie verwenden Sie key-parameter sortiert...
Dieser sagt python, um die Liste Sortieren von Listen mit dem Element an index 1 in der Liste als Schlüssel für die vergleichen.
Das ist, weil sortiert gibt eine neue Liste zurück. Built-in .Sortieren sortiert die vorhandene Liste.
danke Senthil, ich wusste gar nicht, dass möglicherweise nicht verstanden werden.
Ja sorry, ich bin immer noch kindda neue zu python, und ich bin zu C++, wo diese Funktionen in der Regel ändern Sie das Objekt anstelle der Rückgabe eine andere.
InformationsquelleAutor Andrew White