[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste

Site de référence: [Introduction à Python] Comment trier efficacement le contenu d'une liste avec tri par liste

[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste

Lors de la programmation, vous souhaitez parfois trier le contenu d'une liste. Selon la langue, il existe une méthode pour réaliser un algorithme de tri existant en utilisant pleinement les instructions for etc., ce qui est étonnamment difficile. Cependant, Python a une fonction pour trier les listes, vous pouvez donc les trier facilement.

Cette fois, je vais vous expliquer comment trier le contenu de la liste.

table des matières 1 [Trier à l'aide de la fonction de tri](## Trier à l'aide de la fonction de tri) 2 [Tri inversé à l'aide de la fonction inverse](## Tri inversé à l'aide de la fonction inverse) 3 [Trier à l'aide de la fonction triée](## Trier à l'aide de la fonction triée) 3.1 [Tri croissant avec fonction triée](Tri croissant avec fonction triée ###) 3.2 [Trier par ordre décroissant avec la fonction triée](Trier par ordre décroissant avec la fonction ### triée) 4 [Trier la liste multidimensionnelle](## Trier la liste multidimensionnelle)

Trier à l'aide de la fonction de tri

Le moyen le plus simple de lister en Python est d'utiliser la fonction de tri. La syntaxe de la fonction de tri est la suivante.

liste.sort()

Utilisez sort () pour trier le contenu de la liste par ordre croissant. Les chaînes de caractères sont triées par ordre de code de caractère et les valeurs numériques sont triées par ordre croissant. Si vous triez avec sort (), le contenu de la liste d'origine sera échangé.

list1 = ['python', 'list', 'sort']
print('Avant de trier:{}'.format(list1))
 
list1.sort()
print('Après le tri:{}'.format(list1))

Résultat d'exécution

Avant de trier: [‘python’, ‘list’, ‘sort’] Après le tri: ['list', 'python', 'sort']

Tri inversé à l'aide de la fonction inverse

Vous pouvez facilement trier la liste à l'aide de la fonction de tri, mais l'ordre est toujours croissant. Si vous souhaitez trier par ordre décroissant, utilisez la fonction inverse. La syntaxe de la fonction inverse est la suivante.

liste.reverse()

Si vous utilisez reverse (), tout dans la liste sera inversé. Par conséquent, vous pouvez trier la liste par ordre décroissant en utilisant reverse () après avoir trié par ordre croissant en utilisant sort ().

list1 = [1,5,3,9,6,7,8]
print('Avant de trier:{}'.format(list1))
 
list1.sort()
print('Après le tri(ordre croissant):{}'.format(list1))
 
list1.reverse()
print('Après le tri(Ordre décroissant):{}'.format(list1))

Résultat d'exécution

Avant le tri: [1, 5, 3, 9, 6, 7, 8] Après le tri (ordre croissant): [1, 3, 5, 6, 7, 8, 9] Après le tri (ordre décroissant): [9, 8, 7, 6, 5, 3, 1]

Trier à l'aide de la fonction triée

Nous avons constaté que la fonction de tri trie la liste par ordre croissant et que la fonction inverse peut être utilisée pour trier par ordre décroissant. Cependant, dans le cas d'un tri utilisant ces deux fonctions, le contenu de la liste d'origine sera réécrit.

Si vous avez trié mais souhaitez le restaurer, vous souhaiterez peut-être créer une nouvelle liste triée sans modifier le contenu si possible. Dans un tel cas, la fonction triée est pratique.

Trier par ordre croissant avec la fonction triée

La fonction triée est une fonction qui trie une liste de la même manière que la fonction de tri. Cependant, la fonction triée renvoie une liste triée, donc contrairement à la fonction de tri, le contenu du tri d'origine reste le même. La syntaxe de tri par ordre croissant avec la fonction triée est la suivante.

Liste 2= sorted(Liste 1)

Passer la liste 1 avant le tri à trié renvoie la liste triée. Le remplacer par le listing 2 crée un nouveau listing 2 qui trie le listing 1. La liste d'origine ne change pas, c'est donc bien de conserver la liste d'origine au cas où quelque chose ne va pas.

list1 = [1,5,3,9,6,7,8]
list2 = sorted(list1)
 
print('Avant de trier:{}'.format(list1))
print('Après le tri:{}'.format(list2))

Résultat d'exécution

Avant le tri: [1, 5, 3, 9, 6, 7, 8] Après le tri: [1, 3, 5, 6, 7, 8, 9]

Trier par ordre décroissant avec la fonction triée

Le tri avec la fonction triée se traduit par ordre croissant, mais vous pouvez bien sûr également trier par ordre décroissant.

Liste 2= sorted(Liste 1)

Lorsque vous utilisez la fonction triée, vous pouvez trier par ordre décroissant en définissant l'option appelée reverse sur True.

list1 = [1,5,3,9,6,7,8]
list2 = sorted(list1, reverse=True)  #inverser à True

print('Avant de trier:{}'.format(list1))
print('Après le tri:{}'.format(list2))

Résultat d'exécution

Avant le tri: [1, 5, 3, 9, 6, 7, 8] Après le tri: [9, 8, 7, 6, 5, 3, 1] Tri de liste multidimensionnel

Jusqu'à présent, nous avons expliqué comment trier une liste unidimensionnelle, mais parfois vous voudrez peut-être trier une liste multidimensionnelle bidimensionnelle ou plus grande. Les tableaux multidimensionnels peuvent être triés en utilisant sort (), reverse (), sorted () comme dans 1-dimension.

Cependant, dans le cas du multi-dimensionnel, le résultat dépend de la valeur utilisée pour le tri. Par exemple, supposons que vous souhaitiez trier une liste comme celle-ci:

list1 = [[1,5,3], [6,4,8], [9,11,2]]

Cette liste1 est un tableau bidimensionnel de trois listes avec trois éléments. Le résultat du tri de cette liste1 change en fonction de l'élément de chaque liste d'éléments utilisé comme clé.

[[1, 5, 3], [6 ,4 ,8], [9, 11, 2]]  #Saisissez le premier élément de chaque liste
[[6, 4, 8], [1, 5, 3], [9, 11, 2]]  #Saisissez le deuxième élément de chaque liste
[[9, 11, 2], [1, 5, 3], [6, 4, 8]]  #Saisissez le troisième élément de chaque liste

Si vous triez normalement une liste multidimensionnelle, elle sera triée en utilisant le premier élément comme clé. Utilisez itemgetter pour trier par éléments clés.

from operator import itemgetter

Liste 1.sort(key=itemgetter(1)) #Liste 1は2次元以の配列

Comme itemgetter est une fonction de la bibliothèque d'opérateurs, il doit d'abord être importé. L'argument de itemgetter () représente le numéro de l'élément que vous souhaitez saisir. Dans le cas de itemgetter (1), la liste est triée en utilisant le premier élément comme clé.

Vous pouvez utiliser itemgetter pour choisir l'élément à utiliser comme clé.

from operator import itemgetter
 
list1 = [[1,5,3], [6,4,8], [9,11,2]]
print('Avant de trier:{}'.format(list1))
 
list1.sort(key=itemgetter(0))
print('Après le tri(0ème élément):{}'.format(list1))
 
list1.sort(key=itemgetter(1))
print('Après le tri(Premier élément):{}'.format(list1))
 
list1.sort(key=itemgetter(2))
print('Après le tri(Deuxième élément):{}'.format(list1))

Résultat d'exécution

Avant le tri: [[1, 5, 3], [6, 4, 8], [9, 11, 2]] Après le tri (0e élément): [[1, 5, 3], [6, 4, 8], [9, 11, 2]] Après le tri (premier élément): [[6, 4, 8], [1, 5, 3], [9, 11, 2]] Après le tri (deuxième élément): [[9, 11, 2], [1, 5, 3], [6, 4, 8]]

Recommended Posts

[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment connecter le contenu de la liste dans une chaîne de caractères
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
[Introduction à Python] Comment itérer avec la fonction range?
Comment écrire un type liste / dictionnaire de Python3
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
[python] Comment trier par le Nth Mth élément d'un tableau multidimensionnel
[Ubuntu] Comment supprimer tout le contenu du répertoire
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Comment afficher une liste des versions installables avec pyenv
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir une liste d'exceptions intégrées pour python
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Résumé de l'utilisation de la liste Python
Comment déterminer l'existence d'un élément sélénium en Python
[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web
Comment vérifier la taille de la mémoire d'une variable en Python
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
J'ai essayé de créer une liste de nombres premiers avec python
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Comment envoyer une requête à l'API DMM (FANZA) avec python
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python (version non bloquante)
Comment calculer la volatilité d'une marque
Comment lire un fichier CSV avec Python 2/3
[Python] Trier la liste de pathlib.Path dans l'ordre naturel
Comment effacer un taple dans une liste (Python)
[Introduction à Python] Quelle est la différence entre une liste et un taple?
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
[Python] Explique comment utiliser la fonction range avec un exemple concret
[Introduction à Udemy Python3 + Application] 19. Copie de la liste
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
Copiez la liste en Python
Je souhaite trier une liste dans l'ordre des autres listes
Comment spécifier des attributs avec Mock of Python
[Algorithm x Python] Comment utiliser la liste
Introduction à Python avec Atom (en route)
Recevez une liste des résultats du traitement parallèle en Python avec starmap
amateur python tente de résumer la liste ②
Comment bien formater une liste de dictionnaires (ou d'instances) en Python
[Introduction à Python] Quelle est la méthode de répétition avec l'instruction continue?
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
[Python] Comment supprimer les valeurs en double de la liste
Comment convertir / restaurer une chaîne avec [] en python
Mémo connecté à HiveServer2 d'EMR avec python
Modèle de script python pour lire le contenu du fichier