Ich versuche, eine verschachtelte Liste A
zu sortieren. len(A) = n
und len(A[i]) = d
für alle i
. Ich würde gerne mit dem ersten Element von A[i]
sortieren. Aber wenn A[i][0] == A[j][0]
dann möchte ich mit dem nächsten Element, z. B. A[i][1]
sortieren. Wenn A[i][1] == A[j][1]
dann verwenden Sie das nächste Element, A[i][2]
, und so weiter.Python sortiert eine verschachtelte Liste mit bedingten Vergleich
Hier ist ein Beispiel mit n = 4
und d = 2
. Weil [3,6]
und [3,7]
das gleiche erste Element haben, werden sie basierend auf dem zweiten Element verglichen.
A = [[3,7], [4,5], [3, 6], [5,1]]
A_sorted = [[3,6], [3,7], [4,5], [5,1]]
In Python 2.7 habe ich benutzerdefinierte Vergleichsfunktion verwendet. A.sort(cmp=comp_func)
. Aber ich versuche, dies in Python 3 zu tun, die die cmp
Argumentoption nicht hat. Also muss ich stattdessen key
Argument verwenden. Wie implementiere ich diese benutzerdefinierte Sortierung in Python 3?
'A_sorted = sortierte (A)' gibt das gewünschte Ergebnis in Python2 und Python3. Keine Notwendigkeit für eine "Schlüssel" -Funktion. – ekhumoro