Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss14:list_comprehension_sortieren_pyplot_sitzung_vom_8._mai

Dies ist eine alte Version des Dokuments!


Sitzung vom 8. Mai

Aus dem Programm, das ein „Wörterbuch“ der Worthäufigkeiten in einem Text erstellt, wurde im nächsten Schritt eine nach absteigender Häufigkeit geordnete Liste.

List comprehensions

Die Umwandlung eines Wörterbuchs in eine Liste hätte sich auf verschiedene Weisen realisieren lassen. Eine auch in anderen Zusammenhängen nützliche Weise ist die Definition einer Liste mit einer so genannten list comprehension:

wbliste = [[wb[wort],wort] for wort in wb]

Die so erzeugte Liste besteht aus zweielementigen Listen [12,'Katze'],[13,'Hunde]…

Allgemein lässt sich mit einer list comprehension aus einer Liste liste eine neue Liste neueliste erzeugen:

  neueliste=[ f(x) for x in l] 

wobei f(x) für irgendeinen Ausdruck steht, in dem x vorkommt.

Sortieren

Hat man nun eine Liste liste, so lässt sich diese wieder auf verschiedene Weisen sortieren:

 liste.sort() 

sortiert die Liste lexikographisch. Anstelle mit der Methode sort lässt, die die gegeben Liste modifiziert, lässt sich das auch mit der Funktion sorted machen, die eine neue sortierte Liste zurückgibt:

 liste=sorted(liste) 

Sind die Einträge wie bei wbliste selbst Listen, so wird erst nach dem ersten Eintrag, dann nach dem zweiten sortiert, usw. Für wbliste heißt das, dass nach Häufigkeit sortiert wird und unter den Wörtern gleicher Häufigkeit alphabetisch.

Durch

 liste.sort(reverse=True) 

wird absteigend lexikographisch geordnet. Will man nicht lexikographisch ordnen, sondern nach einer selbst definierten Ordnungsrelation, so lässt sich das mit Hilfe eines weiteren Paramters key=… realisieren, siehe z.B. //wiki.python.org/moin/HowTo/Sorting

Zipf's law und erste Plots

ss14/list_comprehension_sortieren_pyplot_sitzung_vom_8._mai.1399911989.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)