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

Comment puis-je obtenir un tri naturel des chaînes en Python ?

Patricia Arquette
Libérer: 2024-12-26 11:17:09
original
451 Les gens l'ont consulté

How Can I Achieve Natural String Sorting in Python?

Tri naturel des chaînes en Python

En Python, trier une liste de chaînes par ordre alphabétique à l'aide de la fonction sorted() par défaut peut ne pas donner le résultat souhaité ordre « naturel ». En effet, sorted() traite les chaînes comme des caractères individuels, ce qui entraîne un ordre non naturel.

Par exemple, considérons la liste de chaînes suivante :

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Copier après la connexion
Copier après la connexion

Tri de cette liste avec sorted() produit ce qui suit :

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
Copier après la connexion

Ceci n'est pas l'ordre de tri naturel, car les nombres qui suivent les lettres sont classés par ordre alphabétique au lieu d'être traités comme faisant partie du nombre.

Pour obtenir un tri naturel des chaînes, vous pouvez utiliser la bibliothèque natsort. Natsort fournit des fonctions qui trient les chaînes de manière plus intuitive, en préservant l'ordre naturel des nombres.

Vous pouvez installer natsort en utilisant pip :

pip install natsort
Copier après la connexion

Pour effectuer un tri naturel sur le donné list, utilisez la fonction natsorted() :

from natsort import natsorted

x = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
natsorted(x, key=lambda y: y.lower())
Copier après la connexion

Cela produira le tri naturel souhaité order :

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Copier après la connexion
Copier après la connexion

La fonction natsort_keygen() peut également être utilisée pour créer une clé de tri :

from natsort import natsort_keygen

natsort_key = natsort_keygen(key=lambda y: y.lower())
list.sort(key=natsort_key)
Copier après la connexion

Cela triera la liste de la même manière que natsorted().

En plus de natsorted() et natsort_keygen(), natsort fournit également os_sorted() et os_sort_keygen() fonctions. Ces fonctions vous permettent de trier les listes selon le comportement de tri de l'explorateur de fichiers de votre système d'exploitation, qui peut être différent du comportement par défaut de natsort.

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