Maison > développement back-end > Tutoriel Python > Comment la bibliothèque « natsort » de Python réalise-t-elle un tri naturel ?

Comment la bibliothèque « natsort » de Python réalise-t-elle un tri naturel ?

Patricia Arquette
Libérer: 2024-12-28 18:09:10
original
757 Les gens l'ont consulté

How Does Python's `natsort` Library Achieve Natural Sorting?

Tri naturel en Python

En Python, la fonction sorted() trie les chaînes dans l'ordre ASCIIbétique. Cependant, pour les scénarios où un tri naturel est souhaité, une bibliothèque appelée natsort vient à la rescousse.

Tri naturel avec natsort

natsort fournit à la fois une fonction de tri et une clé de tri. Pour une fonction de tri, vous pouvez utiliser natsorted() :

from natsort import natsorted

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

Cela triera la liste selon l'ordre naturel ('elm0', 'elm1', etc.).

Tri Clé avec natsort_keygen

Si une clé de tri est plus adaptée, vous pouvez utiliser natsort_keygen() :

from natsort import natsort_keygen

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

Cela triera la liste dans le même ordre naturel.

Cas particulier : trier comme l'Explorateur Windows

natsort fournit également la fonction os_sorted pour trier dans le même ordre que le navigateur du système de fichiers sur un système d'exploitation particulier :

from natsort import os_sorted

paths = ['path/to/file1', 'path/to/file10', 'path/to/file2']
os_sorted(paths)
Copier après la connexion

Cela triera les chemins en fonction à l'explorateur 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