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
Patricia Arquetteoriginal
2024-12-26 11:17:09444parcourir

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']

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

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']

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

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())

Cela produira le tri naturel souhaité order :

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

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)

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!

Déclaration:
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