Sortieren von Zeichenfolgen mit eingebetteten Zahlen
Beim Umgang mit Zeichenfolgen, die Zahlen enthalten, führt die alphabetische Sortierung möglicherweise nicht zu den gewünschten Ergebnissen. Um solche Zeichenfolgen richtig zu sortieren, müssen Sie sowohl die Text- als auch die numerischen Komponenten berücksichtigen.
Menschliche Sortierung (natürliche Sortierung)
Natürliche Sortierung, auch als menschliche Sortierung bekannt, ist eine Technik, mit der Gegenstände so sortiert werden, dass sie der Wahrnehmung des Menschen entsprechen. Bei diesem Ansatz werden die Zahlen aus den Zeichenfolgen extrahiert und dann anhand ihrer numerischen Werte sortiert.
In Python können Sie die natürliche Sortierung mithilfe des folgenden benutzerdefinierten Sortierschlüssels implementieren:
def natural_keys(text): return [int(c) if c.isdigit() else c for c in re.split(r'(\d+)', text)]
This Die Funktion teilt die Zeichenfolge in Zeichen und Zahlen auf und wandelt die numerischen Zeichen dann in ganze Zahlen um. Die sortierte Liste wird durch Aufrufen der Funktion sort() mit diesem benutzerdefinierten Schlüssel erhalten:
alist = ["something1", "something12", "something17", "something2", "something25", "something29"] alist.sort(key=natural_keys) print(alist)
Die Ausgabe wäre:
['something1', 'something2', 'something12', 'something17', 'something25', 'something29']
Sorting Strings with Floats
Wenn Ihre Zeichenfolgen Gleitkommazahlen enthalten, können Sie den natürlichen Sortierschlüssel wie folgt ändern, um ihn zu extrahieren und in Gleitkommazahlen umzuwandeln Regex:
def natural_keys(text): return [float(c) if c.isdigit() else c for c in re.split(r'[+-]?([0-9]+(?:[.][0-9]*)?|[.][0-9]+)', text)]
Mit diesem modifizierten Schlüssel können Sie auch Zeichenfolgen mit Gleitkommazahlen sortieren:
alist = ["something1", "something2", "something1.0", "something1.25", "something1.105"] alist.sort(key=natural_keys) print(alist)
Die Ausgabe wäre:
['something1', 'something1.0', 'something1.105', 'something1.25', 'something2']
Durch den Einsatz menschlicher Sortiertechniken können Sie Zeichenfolgen mit eingebetteten Zahlen effizient und so sortieren, dass sie der menschlichen Intuition entsprechen.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Zeichenfolgen mit Zahlen auf natürliche Weise in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!