Heim >Backend-Entwicklung >Python-Tutorial >Wie erreicht die Python-Bibliothek „natsort' eine natürliche Sortierung?

Wie erreicht die Python-Bibliothek „natsort' eine natürliche Sortierung?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-28 18:09:10755Durchsuche

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

Natürliche Sortierung in Python

In Python sortiert die Funktion sorted() Zeichenfolgen in ASCII-betischer Reihenfolge. Für Szenarien, in denen eine natürliche Sortierung gewünscht ist, kommt jedoch eine Bibliothek namens natsort zur Rettung.

Natürliche Sortierung mit natsort

natsort bietet sowohl eine Sortierfunktion als auch einen Sortierschlüssel. Für eine Sortierfunktion können Sie natsorted() verwenden:

from natsort import natsorted

l = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
natsorted(l, key=lambda y: y.lower())

Dadurch wird die Liste nach natürlicher Reihenfolge sortiert ('elm0', 'elm1' usw.).

Sortierung Schlüssel mit natsort_keygen

Wenn ein Sortierschlüssel besser geeignet ist, können Sie ihn verwenden 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)

Dadurch wird die Liste in der gleichen natürlichen Reihenfolge sortiert.

Sonderfall: Sortierung wie im Windows Explorer

natsort stellt auch die Funktion os_sorted zur Verfügung Sortieren Sie in der gleichen Reihenfolge wie der Dateisystembrowser auf einem bestimmten Betriebssystem:

from natsort import os_sorted

paths = ['path/to/file1', 'path/to/file10', 'path/to/file2']
os_sorted(paths)

Dadurch werden die Pfade entsprechend sortiert Datei-Explorer des Betriebssystems.

Das obige ist der detaillierte Inhalt vonWie erreicht die Python-Bibliothek „natsort' eine natürliche Sortierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn