Python :: Aufgabe #136 :: Lösung #2
2 Lösungen

#136
Wörterzählen in Textdateien
Anfänger - Python
von hollst
- 23.12.2016 um 09:50 Uhr
Man schreibe ein Programm, das bei einer beliebigen Textdatei (ASCII)
a) alle Wörter und
b) alle unterschiedlichen Wörter der Längen 1, 2, 3 ... zählt, wobei zwischen Groß- und Kleinbuchstaben nicht zu unterscheiden sei.
Als Wörter-Trennzeichen sind zu verwenden:
a) alle Sonderzeichen (' ', '.', ',', tab ...) sowie Zahlen (0, 1 ... 9) und
b) alle Chars, die nicht zum Aphabet (abc...xyzäöü) gehören (damit wäre a) bereits automatisch erfüllt).
Anmerkungen:
a) Es gibt auch im Deutschen Wörter der Länge 1, z. B. in "a tempo" oder " a priori" oder bei Abkürzungen ("z. B.").
b) Als Beispieltext kann von hier die komplette Bibelausgabe nach Martin Luther 1912 als ASCII-Datei heruntergeladen und verwendet werden (ist mit 4 MB zu lang als Anhang hier, selbst als *.rar noch ca. 1.2 MB).
Viel Spaß und schöne Weihnachten sowie einen guten Rutsch und Start in 2017.
a) alle Wörter und
b) alle unterschiedlichen Wörter der Längen 1, 2, 3 ... zählt, wobei zwischen Groß- und Kleinbuchstaben nicht zu unterscheiden sei.
Als Wörter-Trennzeichen sind zu verwenden:
a) alle Sonderzeichen (' ', '.', ',', tab ...) sowie Zahlen (0, 1 ... 9) und
b) alle Chars, die nicht zum Aphabet (abc...xyzäöü) gehören (damit wäre a) bereits automatisch erfüllt).
Anmerkungen:
a) Es gibt auch im Deutschen Wörter der Länge 1, z. B. in "a tempo" oder " a priori" oder bei Abkürzungen ("z. B.").
b) Als Beispieltext kann von hier die komplette Bibelausgabe nach Martin Luther 1912 als ASCII-Datei heruntergeladen und verwendet werden (ist mit 4 MB zu lang als Anhang hier, selbst als *.rar noch ca. 1.2 MB).
Viel Spaß und schöne Weihnachten sowie einen guten Rutsch und Start in 2017.
#2

von Gisbert5020 (3120 Punkte)
- 12.02.2019 um 20:42 Uhr

import re datei = open("datei.txt", encoding ="utf8").read().lower() woerter = list(re.findall(r"\b([a-z,ä,ö,ü,ß,']+)\b", datei)) wort_anzahl={} for wort in woerter: l = len(wort) if l in wort_anzahl: wort_anzahl[l] +=1 else: wort_anzahl[l] = 1 print(" Alle Wörter") print("Wortlänge Anzahl") wort_anzahl_liste = list(wort_anzahl.items()) for (wl,anz) in sorted(wort_anzahl_liste): print(" {0:8d} {1:8d}".format(wl,anz)) wort_anzahl={} woerters = set(woerter) for wort in woerters: l = len(wort) if l in wort_anzahl: wort_anzahl[l] +=1 else: wort_anzahl[l] = 1 print("Alle unterschiedlichen Wörter") print("Wortlänge Anzahl") wort_anzahl_liste = list(wort_anzahl.items()) for (wl,anz) in sorted(wort_anzahl_liste): print(" {0:8d} {1:8d}".format(wl,anz))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1