Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialDolapo Sekoni
Courses Plus Student 1,431 Pointsword_count
kindly help solve this.
# E.g. word_count("I do not like it Sam I Am") gets back a dictionary like:
# {'i': 2, 'do': 1, 'it': 1, 'sam': 1, 'like': 1, 'not': 1, 'am': 1}
# Lowercase the string to make it easier.
def word_count(words):
sentence = words.lower()
cnt = counter()
for word in sentence:
cnt[word] += 1
return cnt
1 Answer
Mustafa Başaran
28,046 PointsHello Dolapo,
The exercise is asking you to construct a dictionary containing words as keys and their number of occurrence in the input to the word_count function.
def word_count(words):
# lowercase the input
words = words.lower()
# convert into a list of words, words_list
words_list = words.split()
# create an empty dictionary, words_dict.. this is what the function will return at the end.
words_dict = dict()
# iterate over each word in words_list
for word in words_list:
# fill words_dict
# with word as KEY
# and how many times each word appears as VALUE
words_dict[word] = words_list.count(word)
#return the words_dict
return words_dict
Of course, this is not the only way you can solve this challenge. Why not creating your own counter and letting it be equal to 1 the first time the for loop encounters it and increment the counter by one in the next appearances of that word in words_list? You can try different alternatives in the work spaces.