Maison > Article > développement back-end > Deux méthodes et exemples de tri de liste Python
Cet article présente principalement deux méthodes et exemples de tri de liste Python. Il a une très bonne valeur de référence. Regardons-le ensemble
Pour trier la Liste, Python propose deux méthodes
Méthode 1. .Utilisez la fonction intégrée list.sort de List pour trier
list.sort(func=None, key=None, reverse=False)
Exemple Python :
>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> list.sort() >>> list [2, 3, 5, 8, 9]
Méthode 2. Utilisez la fonction de type séquence sorted(list) pour trier (à partir de 2.4 )
Exemples Python :
>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> sorted(list) [2, 3, 5, 8, 9]
Deux types La différence entre les méthodes :
sorted(list) renvoie un objet qui peut être utilisé comme expression. La liste d'origine reste inchangée et un nouvel objet de liste triée est généré.
list.sort() ne renverra pas d'objets et ne modifiera pas la liste d'origine.
Autres exemples de tri :
Exemple 1 : Tri direct
>>>L = [2,3,1,4] >>>L.sort() >>>L >>>[1,2,3,4]
Exemple 2 : Tri inversé
>>>L = [2,3,1,4] >>>L.sort(reverse=True) >>>L >>>[4,3,2,1]
Exemple 3 : Tri du deuxième mot-clé
>>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(lambda x,y:cmp(x[1],y[1])) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
Exemple 4 : Trier le deuxième mot-clé
>>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(key=lambda x:x[1]) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
Exemple 5 : Tri du deuxième mot-clé à droite
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>import operator >>>L.sort(key=operator.itemgetter(1)) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
Exemple 6 : (Méthode DSU : Décorer-Trier- Undercorer)
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort >>>A.sort() >>>L = [s[2] for s in A] >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
Ce qui précède donne 6 méthodes de tri de la liste, parmi lesquelles l'exemple 3.4.5.6 peut Il est utilisé pour trier un certain élément dans l'élément de liste
comme clé de comparaison
Comparaison d'efficacité :
Clé cmp < comparaison expérimentale, la méthode 3 est plus lente que la méthode 6, la méthode 6 est plus lente que la méthode 4, la méthode 4 et la méthode 5 sont fondamentalement équivalentesMots clés multiples Tri par comparaison :
Exemple 7 :
>>>L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:x[1]) >>> L >>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]On voit que ce L trié n'est trié que par le deuxième mot-clé
Et si nous voulons trier par le deuxième mot-clé puis trier par le premier mot-clé ? Il existe deux manières Méthode
Exemple 8 :
>>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:(x[1],x[0])) >>> L >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]Exemple 9 :
>>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=operator.itemgetter(1,0)) >>> L >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
Pourquoi l'instance 8 fonctionne-t-elle ? La raison en est que les tuples sont comparés de gauche à droite. Après avoir comparé le premier, s'ils sont égaux, comparez le second
Recommandations associées : La méthode de tri des tuples imbriqués dans l'objet liste python à l'aide de sort
La méthode de tri lorsque l'élément de la liste python est un tupleCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!