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 trial

Python Python Collections (2016, retired 2019) Dictionaries Word Count

Dolapo Sekoni
PLUS
Dolapo Sekoni
Courses Plus Student 1,431 Points

word_count

kindly help solve this.

wordcount.py
# 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
Mustafa Başaran
28,046 Points

Hello 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.