Maison >développement back-end >Tutoriel Python >Comment la bibliothèque « natsort » de Python peut-elle effectuer un tri naturel des chaînes ?

Comment la bibliothèque « natsort » de Python peut-elle effectuer un tri naturel des chaînes ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 07:10:33951parcourir

How Can Python's `natsort` Library Perform Natural String Sorting?

Effectuer un tri naturel avec des chaînes en Python

En Python, effectuer un tri alphabétique naturel sur une liste de chaînes peut être réalisé en utilisant des méthodes tierces. bibliothèques du parti. L'une de ces bibliothèques est natsort, qui fournit une variété de méthodes de tri naturel.

Par exemple, pour trier une liste de chaînes dans un ordre naturel, on peut utiliser natsorted():

from natsort import natsorted

list = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
natsorted(list, key=lambda y: y.lower())  # or natsorted(list, alg=ns.IGNORECASE)
# Output: ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

Alternativement, une clé de tri peut être générée à l'aide de natsort_keygen() :

from natsort import natsort_keygen

natsort_key = natsort_keygen(key=lambda y: y.lower())  # or natsort_keygen(alg=ns.IGNORECASE)
list.sort(key=natsort_key)
# Output: ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

La bibliothèque natsort utilise une méthode généralisée algorithme pour gérer différents types d'entrée, y compris les chaînes avec des caractères spéciaux et des nombres. Sa documentation fournit des explications détaillées et des exemples de ses capacités de tri.

De plus, natsort inclut désormais os_sorted pour trier les chemins d'une manière cohérente avec le navigateur du système de fichiers du système d'exploitation.

from natsort import os_sorted

os_sorted(list_of_paths)  # Sorts paths like the file system browser

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