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

This code works in command line, but not on Treehouse

So even though this brings the desired results in my terminal Python environment, Treehouse says that my code is wrong. Please help!

Code:

def word_count(sentence): my_sentence = sentence.lower() my_dict = {} sentence_list = my_sentence.split(" ") for word in sentence_list: if word in my_dict: my_dict[word] = int(my_dict[word]) + 1 else: my_dict[word] = 1 return my_dict

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(sentence):
    my_sentence = sentence.lower()
    my_dict = {}
    sentence_list = my_sentence.split(" ")
    for word in sentence_list:
        if word in my_dict:
            my_dict[word] = int(my_dict[word]) + 1
        else:
            my_dict[word] = 1
    return my_dict

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there! You're very close on this one! The key here is having it split on all whitespace. My guess is that you haven't tried running this code with any strings that contain tab characters and newline characters. Those are also whitespace.

Currently, your code is splitting on all spaces, but it should be splitting on all whitespace including tabs and newlines. So, if I change just one teensy thing, your code passes.

To split on all spaces we use split(" "), but to split on all whitespace we use just split() with no arguments.

When I remove the arguments in split(), your code passes with flying colors! All in all, well done! :sparkles:

Thank you so much, Jennifer! Appreciate the pointer!