Ordre naturel en Python

import re


def nautural_order_key(s, _split=re.compile(r'(\d+)').split, conv=int):
    it = _split(s)
    it[1::2] = map(conv, it[1::2])
    return it

x = ['hoge99', 'hoge100', 'hoge10']
x.sort(key= nautural_order_key)
print(x)  # ['hoge10', 'hoge99', 'hoge100']

Recommended Posts

Ordre naturel en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
FizzBuzz en Python
Sqlite en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Liste triée en Python
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 18 en Python
Motif singleton en Python
Opérations sur les fichiers en Python
Séquence de touches en Python
Daily AtCoder # 33 en Python
Distribution logistique en Python
AtCoder # 7 tous les jours avec Python
Décomposition LU en Python
Une doublure en Python
[Python] Trier la liste de pathlib.Path dans l'ordre naturel
AtCoder # 24 tous les jours avec Python
classe de cas en python
Implémentation RNN en python
AtCoder # 8 tous les jours avec Python
Traitement de fichiers en Python
Elasticsearch Reindex en Python
Daily AtCoder # 42 en Python
Tri de base en Python