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

Ali Dahud
Ali Dahud
3,459 Points

I Don't know where to start this challenge :/

Alright, this one might be a bit challenging but you've been doing great so far, so I'm sure you can manage it.

I need you to make a function named word_count. It should accept a single argument which will be a string. The function needs to return a dictionary. The keys in the dictionary will be each of the words in the string, lowercased. The values will be how many times that particular word appears in the string.

Check the comments below for an example.

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.

2 Answers

Ali Dahud
Ali Dahud
3,459 Points

Dear Chris Freeman would you be so kind and reply?

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 68,441 Points

Here is a basic flow:

# split incoming string into a list of words
# loop over list of words
# for each word
#    if not seen add to dictionary with count 1
#    if seen before, increase seen count
# return string

Post back if you need more help. Good luck!!!

Ali Dahud
Ali Dahud
3,459 Points

Chris Freeman

# 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(string):
    words=string.lower().split()
    word_dict={}
    for word in words:
        count=1
        if word in words:
            count+=1
            word_dict[word]
        else:
            count=1
    return word_dict

its still not passing :(