python_morsels/count/count.py

35 lines
781 B
Python

import re
from collections import defaultdict, Counter
def count_words_v1(sentence):
count = defaultdict(int)
for word in sentence.split():
count[word.lower()] += 1
return count
def count_words_v2(sentence):
regex = r"[\w|']+"
count = defaultdict(int)
for word in re.findall(regex, sentence):
count[word.lower()] += 1
return count
def count_words_v3(sentence):
"""Augmented by trey's regex."""
regex = r"\b[\w'-]+\b"
count = defaultdict(int)
for word in re.findall(regex, sentence):
count[word.lower()] += 1
return count
def count_words_v4(sentence):
"""And the most compact yet pythonic solution."""
return Counter(re.findall(r"\b[\w'-]+\b", sentence.lower()))
count_words = count_words_v4