2016-04-28 5 views
0

Ich möchte nach ersten Element in Tupel sortieren, und, wenn das erste Element für einige Tupel gleich ist, durch zweites Element. Zum Beispiel habe ich [(5,1),(1,2),(1,1),(4,3)] und ich möchte [(1,1),(1,2),(4,3),(5,1)]Wie sortiere ich die Liste der Tupel mit beiden Elementen des Tupels?

bekommen Wie kann ich es in pythonischer Weise tun?

+1

Mögliche Duplikat (http [Wie sortieren (Liste/Tupel) von Listen/Tupeln?]: // Stackoverflow .com/questions/3121979/how-to-sort-liste-tuple-of-lists-tupel) – Florent

Antwort

2
d = [(5,1),(1,2),(1,1),(4,3)] 
print(sorted(d,key=lambda x:(x[0],x[1]))) 

wenn Sie eine bessere Leistung verwenden wollen itemgetter

+0

Der Schlüssel ist nicht erforderlich. – AKS

1
import operator 
l = [(5,1),(1,2),(1,1),(4,3)] 
print(sorted(l, key=operator.itemgetter(0,1)) 
0

Sie brauchen nicht wirklich die key angeben, da Sie sich auf der Liste Artikel sortieren möchten.

>>> d = [(5,1),(1,2),(1,1),(4,3)] 
>>> sorted(d) 
[(1, 1), (1, 2), (4, 3), (5, 1)] 
0

Denken Sie daran, Sortieren Methode eine Liste Objekt zurückgeben. In diesem Fall bleibt d immer noch unsortiert.

Wenn Sie d sortieren möchten, können Sie

verwenden
>>>d.sort() 

Hoffe, es hilft

Verwandte Themen