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']
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é.
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