Maison >développement back-end >Tutoriel Python >Comment puis-je effectuer un tri naturel de chaînes en Python ?
Tri naturel des chaînes en Python
Le tri naturel est un algorithme de tri alphabétique qui gère correctement les numéros et les versions des chaînes. Par exemple, il doit trier "elm0" avant "elm10" même si "10" est considéré comme supérieur à "0" dans une comparaison mathématique.
La fonction native sorted() de Python n'effectue pas de tri naturel par défaut. Pour obtenir ce comportement, vous pouvez utiliser la bibliothèque natsort, qui implémente un algorithme de tri naturel.
Pour utiliser natsort, installez-le via :
pip install natsort
Ensuite, en fonction de vos besoins, vous peut soit utiliser la fonction de tri, soit une clé de tri :
Tri Fonction :
from natsort import natsorted names = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13'] natsorted(names) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Clé de tri :
from natsort import natsort_keygen names = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13'] sort_key = natsort_keygen() names.sort(key=sort_key) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Vous pouvez également utiliser les algorithmes de tri insensibles à la casse de natsort si vous le souhaitez :
from natsort import ns natsorted(names, alg=ns.IGNORECASE) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
La bibliothèque natsort fournit une solution complète pour effectuer un tri naturel en Python, gérer divers formats d'entrée et fournir des options pour le tri insensible à la casse ainsi que la compatibilité avec le tri du navigateur du système de fichiers du système d'exploitation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!