Cześć,
Mam taki kod, jednak kiedy liczą się słowa, niektóre łączą się razem.
def słowa1(plik):
import collections
with open (plik,"r") as file:
data = file.read().replace('\n', '')
words = data.split()
word_counts = collections.Counter(words)
for word, count in sorted(word_counts.items()):
print('"%s" is repeated %d time%s.' % (word, count, "s" if count > 1 else ""))
x = input("podaj")
słowa1(x)
Dziękuję za pomoc :)
0
2
Są złączone, bo split
rozdziela stringa tylko po białych znakach.
Potrzebujesz bardziej uniwersalnej metody rozdzielania:
import re
splitter_re = re.compile('[\s\.,!?]')
words = splitter_re.split(data)
splitter_re
to wyrażenie regularne, które wyłapuje wszystkie białe znaki (\s
), kropki(\.
, bo to znak specjalny), przecinki, wykrzykniki i znaki zapytania.