3
unknown
abc
4 years ago
1.0 kB
10
Indexable
import re
def word_stat(filename):
'''
Zwraca posortowaną malejąco statystykę wystąpień słów
w pliku w postaci listy par (słowo, liczba).
'''
wordset = set()
listofwords = []
f = open(filename,'r')
lines = f.readlines()
for line in lines:
words = _words_from_line(line)
for word in words:
wordset.add(word)
listofwords.append(word)
values = [listofwords.count(x) for x in wordset]
d = dict(zip(wordset, values)) # słownik (klucz:wartość)
d.items()
#print(_sort_stat(d.items()))
return _sort_stat(d.items())
def _words_from_line(line):
"Zwraca listę słów dla linijki tekstu unicode."
words = re.split('[\W\d]+', line)
return [w.lower() for w in words if w]
def _sort_stat(stat):
"Sortuje malejąco listę par według drugiego elementu."
return sorted(stat, key=lambda p: p[1], reverse=True)
word_stat('wiki_small.txt')Editor is loading...