2016-10-17 6 views
-1

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?

+0

'A_sorted = sortierte (A)' gibt das gewünschte Ergebnis in Python2 und Python3. Keine Notwendigkeit für eine "Schlüssel" -Funktion. – ekhumoro

Antwort

1

Dies ist das standardmäßige Python-Sortierverhalten. Hast du es versucht und es hat nicht funktioniert?

+0

Oh. Das ist richtig. Ich danke dir sehr! – zcadqe

Verwandte Themen