Wenn Sie die Liste in Python sortieren möchten, können Sie sie mithilfe der Funktion sort () wie unten gezeigt einfach sortieren.
>>> l = ['B', 'C', 'A']
>>> l.sort()
>>> print l
['A', 'B', 'C']
Wenn Sie jedoch die Dateiliste mit Punkten wie ".file" sortieren, werden die Dateien mit Punkten zuerst wie unten gezeigt in einer Reihe angeordnet.
>>> files = ['file01', 'file02', '.file04', 'file03']
>>> files.sort()
>>> print files
['.file04', 'file01', 'file02', 'file03']
Wenn Sie beispielsweise nach dem Teil sortieren möchten, der keine Punkte enthält, wie die Ausgabe des Befehls ls, können Sie den Lambda-Ausdruck wie folgt verwenden.
>>> 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']
Der sortKey gibt an, wie ein Schlüssel zum Sortieren generiert wird. Insbesondere wird das Sortierziel als "f" übergeben, und wenn am Anfang ein Punkt mit "f.startswith (". ")" Steht, wird das zweite Zeichen ausgeschnitten und als Schlüssel verwendet.
Sie können die Liste beispielsweise nach Dateigröße sortieren, indem Sie folgende Schritte ausführen:
>>> import os
>>> files = ['file01', 'file02', '.file04', 'file03']
>>> sortKey = lambda f: os.state(f).st_size
>>> files.sort(key=sortKey)
Recommended Posts