Implémentation du tri original en Python

Tri normal

Si vous souhaitez trier la liste en python, vous pouvez facilement la trier en utilisant la fonction sort () comme indiqué ci-dessous.

>>> l = ['B', 'C', 'A']
>>> l.sort()
>>> print l
['A', 'B', 'C']

Cependant, si vous triez la liste de fichiers contenant des points tels que .file, les fichiers contenant des points seront alignés en premier comme indiqué ci-dessous.

>>> files = ['file01', 'file02', '.file04', 'file03']
>>> files.sort()
>>> print files
['.file04', 'file01', 'file02', 'file03']

Tri original à l'aide de l'expression lambda

Par exemple, si vous souhaitez trier par la partie qui ne contient pas de points comme la sortie de la commande ls, vous pouvez le faire en utilisant l'expression lambda comme suit.

>>> files = ['file01', 'file02', '.file04', 'file03']
>>> sortKey = lambda f: f if not f.startswith('.') else f[1:]
>>> files.sort(key=sortKey)
>>> print files
['file01', 'file02', 'file03', '.file04']

SortKey spécifie comment générer une clé pour le tri. Plus précisément, la cible de tri est passée en tant que «f», et s'il y a un point au début avec «f.startswith («. »)», Le deuxième caractère est coupé et utilisé comme clé.

Autres applications

Vous pouvez également trier la liste par taille de fichier en procédant comme suit, par exemple:

>>> import os
>>> files = ['file01', 'file02', '.file04', 'file03']
>>> sortKey = lambda f: os.state(f).st_size
>>> files.sort(key=sortKey)


Recommended Posts

Implémentation du tri original en Python
Implémentation du tri rapide en Python
Algorithme de tri et implémentation en Python
Implémentation du jeu de vie en Python
Implémentation RNN en python
Tri de base en Python
Implémentation ValueObject en Python
Implémentation SVM en python
Explication de la distance d'édition et de l'implémentation en Python
Jugement d'équivalence d'objet en Python
Techniques de tri en Python
Implémentation Python du filtre à particules
Implémentation de réseau neuronal en python
Implémentation d'estimation la plus probable du modèle de sujet en python
Implémentation d'estimation bayésienne de variante du modèle de sujet en python
Un mémorandum sur la mise en œuvre des recommandations en Python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Manipulation des pixels d'image en Python
Implémentation de l'estimation des paramètres HMM en python
Implémentation Python du filtre à particules auto-organisateur
Implémentation de distribution normale mixte en python
Échappement automatique des paramètres MySQL en python
Gestion des fichiers JSON en Python
Affichage de la forme d'onde audio en Python
Implémentation des notifications de bureau à l'aide de Python
Implémentation Python de l'arborescence de segments non récursive
Implémentation de Light CNN (Python Keras)
La loi des nombres en python
Implémentation de la méthode Dyxtra par python
Brouillage réversible d'entiers en Python
Vérifiez le comportement du destroyer en Python
Pratique d'utilisation de ceci en Python (mauvais)
Théorie générale de la relativité en Python: Introduction
Arborescence de sortie des fichiers en Python
Comparaison des modules de conversion japonais en Python3
C'est une implémentation de ConnectionPool dans redis.py
Résumé de diverses instructions for en Python
Le résultat de l'installation de python sur Anaconda
Modèles Gang of Four (GoF) en Python
Remplacement en bloc des chaînes dans les tableaux Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Traffic Safety-kun: Reconnaissance des panneaux de signalisation en Python
Utilisation d'opérateurs non logiques de ou en python
À la recherche du FizzBuzz le plus rapide en Python
Exemple pratique d'architecture hexagonale en Python
Projet Euler # 17 "Nombre de caractères" en Python
Equation de mouvement à double pendule en python
Débarrassez-vous des images DICOM en Python
Implémentation Python du modèle Markov caché continu
Statut de chaque système de traitement Python en 2020
Projet Euler # 1 "Multiple de 3 et 5" en Python
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
Méta-analyse en Python
Unittest en Python