Heim > Backend-Entwicklung > Python-Tutorial > Wie erreicht man eine Sortierung in natürlicher Reihenfolge in Python wie PHPs Natsort?

Wie erreicht man eine Sortierung in natürlicher Reihenfolge in Python wie PHPs Natsort?

Patricia Arquette
Freigeben: 2024-11-05 14:57:02
Original
986 Leute haben es durchsucht

How to Achieve Natural Order Sorting in Python Like PHP's natsort?

Pythons Äquivalent zu PHPs Natsort für die Sortierung in natürlicher Reihenfolge

Eine häufig gestellte Frage in Python ist, wie man eine Liste in natürlicher Reihenfolge sortiert, ähnlich zur Natsort-Funktion von PHP. Im Gegensatz zu einer Standardsortierung betrachtet die natürliche Reihenfolge numerische Zeichen als Zahlen und nicht als Zeichenfolgen.

Erwägen Sie beispielsweise das Sortieren einer Liste von Dateinamen:

<code class="python">l = ['image1.jpg', 'image15.jpg', 'image12.jpg', 'image3.jpg']
l.sort()</code>
Nach dem Login kopieren

Diese Standardsortierung führt zu:

['image1.jpg', 'image12.jpg', 'image15.jpg', 'image3.jpg']
Nach dem Login kopieren

Um jedoch eine natürliche Sortierung zu erreichen, stellt Python eine Schlüsselfunktion zur Verfügung, die Strings nach Möglichkeit in numerische Tupel umwandelt. Dies ermöglicht korrekte numerische Vergleiche.

Hier ist eine Beispielimplementierung:

<code class="python">import re

def natsort_key(s):
    return map(int, re.findall(r'(\d+)', s))</code>
Nach dem Login kopieren

Die Anwendung dieses Schlüssels während der Sortierung ergibt die gewünschte natürliche Reihenfolge:

<code class="python">l.sort(key=natsort_key)</code>
Nach dem Login kopieren

Die Ausgabe wird sein:

['image1.jpg', 'image3.jpg', 'image12.jpg', 'image15.jpg']
Nach dem Login kopieren

Alternativ, wenn Sie eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung benötigen, kann eine vollständigere Implementierung verwendet werden:

<code class="python">def natcasecmp(a, b):
    return natcmp(a.lower(), b.lower())</code>
Nach dem Login kopieren

Dies bietet eine Sortierung in natürlicher Reihenfolge, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird.

Das obige ist der detaillierte Inhalt vonWie erreicht man eine Sortierung in natürlicher Reihenfolge in Python wie PHPs Natsort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage