Seite 1 von 1

Sorting Problem einer Liste

Verfasst: Dienstag 12. November 2013, 10:13
von x1334
Hallo,

ich habe ein Problem mit einer Liste.

Der Inhalt sieht so aus:

['Kladogramm\t4', 'Klassifikation\t2060', 'Klassifikationsschema\t59', 'Verzweigungsstruktur\t2', 'Baum\t20225', 'Baumstruktur\t182', 'Taxonomie\t181'].

Ich möchte diese Liste gerne so sortieren, dass das ganze nach Größe der Zahlen hinter dem Tab geordnet wird, bekomme das ganze aber nicht hin.

Wie gehe ich hier am Besten vor?

Mit freundlichen Grüßen,
x1234

Re: Sorting Problem einer Liste

Verfasst: Dienstag 12. November 2013, 10:19
von BlackJack
@x1334: Schreib eine Funktion welche die Zahl aus einem solchem Eintrag ermittelt (tatsächlich als Zahl, nicht nur die Zeichenkette) und übergib die als `key`-Argument von `sort()`.

Edit:

Code: Alles auswählen

In [2]: data
Out[2]: 
['Kladogramm\t4',
 'Klassifikation\t2060',
 'Klassifikationsschema\t59',
 'Verzweigungsstruktur\t2',
 'Baum\t20225',
 'Baumstruktur\t182',
 'Taxonomie\t181']

In [3]: sorted(data, key=lambda x: int(x.split('\t', 1)[1]))
Out[3]: 
['Verzweigungsstruktur\t2',
 'Kladogramm\t4',
 'Klassifikationsschema\t59',
 'Taxonomie\t181',
 'Baumstruktur\t182',
 'Klassifikation\t2060',
 'Baum\t20225']

Re: Sorting Problem einer Liste

Verfasst: Dienstag 12. November 2013, 10:51
von x1334
Vielen Dank, hab eben auch bemerkt, dass das Problem war, dass die Zahl kein Int war...

Gruß