def sort(self, *, key=None, reverse=False) -> None
La méthode sort
accepte deux paramètres nommés que vous pouvez spécifier dans n'importe quel ordre,
étant donné qu'il s'agit d'une méthode à nombre variable de paramètres.
Sort the list in ascending order and return None. The sort is in-place (i.e. the list itself is modified) and stable (i.e. the order of two equal elements is maintained). If a key function is given, apply it once to each list item and sort them, ascending or descending, according to their function values. The reverse flag can be set to sort in descending order.
Paramètre | Description |
---|---|
self : list |
La liste courante. Rappel : self est implicitement passée lors de l'appel de la méthode. |
key : callable = None |
Une fonction (ou une lambda) permettant d'extraire une clé de comparaison pour le tri. Ce paramètre est très utile si la liste contient des données complexes à trier (objects, disctionnaires...). |
reverse : bool = False |
Indique si vous souhaitez trier la liste dans l'ordre inverse ou non. |
Cette méthode ne renvoie aucune valeur.
1 2 3 4 5 6 |
#!/usr/bin/python3
data = [50, 20, 30, 80, 60, 10, 70, 40, 90]
print(data)
data.sort()
print(data)
|
Et voici le résultat produit par ce programme :
[50, 20, 30, 80, 60, 10, 70, 40, 90] [10, 20, 30, 40, 50, 60, 70, 80, 90]
Pour trier une liste en sens inverse, il suffit d'ajouter le paramètre reverse=True
lors de l'appel de la méthode sort
.
1 2 3 4 5 6 |
#!/usr/bin/python3 data = [50, 20, 30, 80, 60, 10, 70, 40, 90] print(data) data.sort(reverse=True) print(data) |
Et voici le résultat produit par ce programme :
[50, 20, 30, 80, 60, 10, 70, 40, 90] [90, 80, 70, 60, 50, 40, 30, 20, 10]
Pour trier une liste de dictionnaires, il est nécessaire de fournir une fonction (ou une lambda) d'extraction d'une clé de comparaison.
Dans l'exemple ci-dessous, la définition lambda spy: spy["lastName"].lower()
permet de réaliser un tri par nom de famille de manière
insensible à la casse. Notez que la troisième entrée de la liste contient un nom de famille en minuscules contrairement aux autres.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/usr/bin/python3 spies = [ { "firstName": "Jason", "lastName": "Bourne", "agency": "CIA" }, { "firstName": "Ethan", "lastName": "Hunt", "agency": "IMF" }, { "firstName": "James", "lastName": "bond", "agency": "MI6" } ] for spy in spies: print(spy) print("--------------------------------------------------") spies.sort(key = lambda spy: spy["lastName"].lower()) for spy in spies: print(spy) |
Et voici le résultat produit par ce programme :
{'firstName': 'Jason', 'lastName': 'Bourne', 'agency': 'CIA'} {'firstName': 'Ethan', 'lastName': 'Hunt', 'agency': 'IMF'} {'firstName': 'James', 'lastName': 'bond', 'agency': 'MI6'} -------------------------------------------------- {'firstName': 'James', 'lastName': 'bond', 'agency': 'MI6'} {'firstName': 'Jason', 'lastName': 'Bourne', 'agency': 'CIA'} {'firstName': 'Ethan', 'lastName': 'Hunt', 'agency': 'IMF'}
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :