Explication détaillée de deux exemples de méthodes de tri de liste Python

高洛峰
Libérer: 2017-03-17 16:39:37
original
1912 Les gens l'ont consulté

Pour trier la Liste, Python propose deux méthodes

Méthode 1. Utilisez la fonction intégrée de Liste liste.tri Tri

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]
Copier après la connexion

Méthode 2. Utilisez la fonction de type séquence sorted(list) pour trier (à partir de 2.4)

Exemple Python :

>>> list = [2,5,8,9,3]  
>>> list  
[2,5,8,9,3]  
>>> sorted(list)  
[2, 3, 5, 8, 9]
Copier après la connexion

La différence entre les deux méthodes :

sorted(list) renvoie un objet, qui peut être utilisé comme une 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]
Copier après la connexion
Exemple 2 : Tri inversé
>>>L = [2,3,1,4]
>>>L.sort(reverse=True)
>>>L
>>>[4,3,2,1]
Copier après la connexion
Exemple 3 : Trier les 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)]
Copier après la connexion
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)]
Copier après la connexion
Exemple 5 : Trier le deuxième mot-clé
>>>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)]
Copier après la connexion
Exemple 6 : ( Méthode DSU : Decorate-Sort-Undercorate)
>>>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)]
Copier après la connexion

Ce qui précède donne 6 méthodes de tri de liste, parmi lesquelles l'exemple 3.4.5.6 peut jouer un rôle dans le tri de liste en utilisant un certain élément dans l'élément de liste.

comme clé de comparaison

Comparaison d'efficacité :

cmp

Tri par comparaison de mots clés multiples :

Exemple 7 :

Nous voyons que le L trié à ce moment-là n'est trié qu'en fonction du deuxième mot-clé
>>>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)]
Copier après la connexion

Si nous voulons trier par le deuxième mot-clé et ensuite utiliser la méthode Comment trier par un mot-clé

Exemple 8 :

Exemple 9 :
>>> 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)]
Copier après la connexion
Pourquoi l'exemple 8 fonctionne-t-il ? La raison en est que les tuples sont comparés de gauche à droite. Après avoir comparé le premier, si
>>> 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)]
Copier après la connexion

est égal, comparez le second

.

Ce 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!