Maison > développement back-end > Tutoriel Python > Comment puis-je effectuer un tri naturel de chaînes en Python ?

Comment puis-je effectuer un tri naturel de chaînes en Python ?

Mary-Kate Olsen
Libérer: 2024-12-28 14:29:11
original
286 Les gens l'ont consulté

How Can I Perform Natural String Sorting in 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
Copier après la connexion

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']
Copier après la connexion

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']
Copier après la connexion

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']
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal