Techniques de tri en Python

introduction

Notez que vous pouvez oublier comment trier lorsque vous êtes en compétition en Python3

Ci-dessous, puisque nous fonctionnons en mode interpréteur, pensez que celui avec «>>>>» au début de la ligne est l'entrée.

Différence entre list.sort () et sorted (list)

list.sort () trie la liste d'origine. La valeur de retour est "None"

>>>> list = [2, 3, 5, 1, 4]
>>>> list.sort()
>>>> list
[1, 2, 3, 4, 5]

sorted (list) renvoie le résultat du tri sans changer la liste d'origine

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

Lorsque vous souhaitez trier dans l'ordre inverse

Ci-dessous, «list.sort ()» et «sorted (list)» utilisent les mêmes options, donc seul «sorted (list)» est géré.

Spécifiez éventuellement reverse = True

>>>> list = [2, 3, 5, 1, 4]
>>>> sorted(list)
[1, 2, 3, 4, 5]
>>>> sorted(list, reverse=True)
[5, 4, 3, 2, 1]

Lorsque vous souhaitez limiter les colonnes utilisées pour le tri

Si vous triez normalement, il triera dans l'ordre à partir de la colonne de gauche. Image comme ordre du dictionnaire

>>>> people = [('Bob', 12), ('Alice', 10), ('Chris', 8), ('Chris', 7)]
>>>> sorted(people)
[('Alice', 10), ('Bob', 12), ('Chris', 7), ('Chris', 8)]

Lorsque vous souhaitez utiliser uniquement la deuxième colonne pour le tri

>>>> sorted(people, key=lambda x:x[1])
[('Chris', 7), ('Chris', 8), ('Alice', 10), ('Bob', 12)]

Lorsque vous souhaitez utiliser les première et deuxième colonnes pour le tri

>>>> sorted(people, key=lambda x:(x[0], x[1]))
[('Alice', 10), ('Bob', 12), ('Chris', 7), ('Chris', 8)]

en conclusion

Si vous utilisez ʻitemgetter, ʻattrgetter, vous n'avez pas besoin d'écrire une expression lambda, mais j'ai décidé de ne pas l'utiliser car j'en apprendrai plus.

Si vous souhaitez l'utiliser, veuillez le vérifier à partir du lien de référence.

référence

https://docs.python.org/3/howto/sorting.html

Recommended Posts

Techniques de tri en Python
Tri de base en Python
À propos de "for _ in range ():" de python
Rechercher les fuites de mémoire dans Python
Rechercher des commandes externes avec python
Algorithme de tri et implémentation en Python
Cours Python pour la science des données - techniques utiles
Implémentation du tri original en Python
Exécutez unittest en Python (pour les débutants)
30/10/2016 else pour Python3> pour:
Quadtree en Python --2
Python en optimisation
python [pour moi]
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Note de nfc.ContactlessFrontend () de nfcpy de python
Inject est recommandé pour DDD en Python
Conseils pour gérer les binaires en Python
[python] Techniques souvent utilisées dans l'apprentissage automatique
Tapez les annotations pour Python2 dans les fichiers stub!
Époque en Python
Discord en Python
Allemand en Python
nCr en python
N-Gram en Python
Modèle pour l'écriture de scripts batch en python
Programmation avec Python
Techniques Python détaillées requises pour la mise en forme des données (1)
Traiter plusieurs listes avec for en Python
Plink en Python
Constante en Python
MongoDB avec Python pour la première fois
Obtenez un jeton pour conoha avec python
FizzBuzz en Python
Exemple de gestion des fichiers eml en Python
Sqlite en Python
Étape AIC en Python
Fiche de triche AtCoder en python (pour moi-même)
Résumé des techniques utiles de Scrapy en Python
J'ai cherché un nombre premier avec python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Remarques sur l'utilisation de python (pydev) avec eclipse
Réflexion en Python
Conseils pour créer de petits outils avec python
Constante en Python
Utilisez pathlib dans Maya (Python2.7) en préparation du prochain Python3.7
nCr en Python.
format en python
Scons en Python 3
Techniques Python détaillées requises pour la mise en forme des données (2)
Puyopuyo en python
python dans virtualenv
PPAP en Python