Ich habe eine Liste von Listen von Listen in Python. Ich muss die höchste Liste von Listen basierend auf einem der Werte in den niedrigsten Ebenen sortieren.Liste der Listen von Listen sortieren Python
Für ein Spielzeugmodell, meine Liste zuerst mit Liste erstellt wird small
, die eine Liste Listen mit drei Elementen mit jeweils ist:
small = [["dog", 5, 6], ["cat", 391, 130], ["pig", 45, 2]...]`
Dann gibt es eine größere Liste, large
, wird diese durch Anhängen erstellt die kleine Liste und andere Artikel zusammen:
large.append([["category 1"], small])`
Dies wird in einer Schleife durchgeführt, so dass, wenn die Schleife einen Zähler von 5 hat, wird es durch eine Funktion gehen, die eine Liste small
5 Mal erstellt, jedes Mal, Anfügen es zu li st large
.
Mein Ziel ist es, die endgültige Liste basierend auf einem Element in der kleinsten Liste (die Liste, die die Liste small
umfasst) zu sortieren. Ich drucke gerade die large
Liste Zeile für Zeile, mit der Liste von index 1
der Listen innerhalb bestellt (siehe: 5,10,15 in Reihenfolge, 1,3,6 in Reihenfolge, etc), so meine Ausgabe das ist:
>category 1:
>['Dog', 5, 6]
>['Pig', 10, 2]
>['Cat', 15, 130]
>['Buffalo', 20, 1]
>['Newt', 25, 45]
>category 2:
>['Newt', 1, 1092]
>['Cat', 3, 352]
>['Pig', 6, 34]
>['Buffalo', 9, 12]
>['Dog', 12, 5]
>category 3:
>['Buffalo', 2, 12]
>['Pig', 4, 37]
>['Cat', 6, 34]
>['Newt', 8, 150]
>['Dog', 10, 52]
Allerdings würde ich die large
Liste in der Reihenfolge der kleinsten drucken möchte am größten, wenn an dem Element in index 1
in der Liste suchen, die kleinste Array bildet. Also mein idealer Ausgang wäre dies:
>category 2:
>['Newt', 1, 1092]
>['Cat', 3, 352]
>['Pig', 6, 34]
>['Buffalo', 9, 12]
>['Dog', 12, 5]
>category 3:
>['Buffalo', 2, 12]
>['Pig', 4, 37]
>['Cat', 6, 34]
>['Newt', 8, 150]
>['Dog', 10, 52]
>category 1:
>['Dog', 5, 6]
>['Pig', 10, 2]
>['Cat', 15, 130]
>['Buffalo', 20, 1]
>['Newt', 25, 45]
Ich habe versucht, mit itemgetter()
Sortierung, aber wenn large
mit itemgetter()
Sortierung, kann ich nur sortieren Sie die Elemente in der Liste large
, die [category x]
und [[a,b,c], [a,b,c]]
sind. Gibt es eine Möglichkeit, auf die niedrigste Elementebene für itemgetter zuzugreifen? oder eine andere Möglichkeit, diese Liste zu sortieren?
Danke.
Schreiben Sie es zuerst als eine normale Schleife und dann sehen Sie, wie es einfacher oder effizienter. –
geschachtelte Indexierung? 'groß [i] [j] [1]' – f5r5e5d