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 trialSam Wederell
20,276 PointsMy solution works on a sample but gets marked as incorrect
My code works for the Dr. Seuss sample text and a few others that I've tried, however, it doesn't seem to work for the string being used to test to pass. What am I missing? It converts to lowercase and splits on whitespace.
# 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):
string.lower()
word_list = string.split()
word_dict = {}
for word in word_list:
try:
word_dict[word] = word_dict[word] + 1
except KeyError:
word_dict[word] = 1
return word_dict
1 Answer
Jennifer Nordell
Treehouse TeacherHi there! Yes, it does convert to lower case, but it doesn't save that conversion anywhere. It's just sort of floating out there in Python limbo. So when you do the string.split()
it's back to uppercase again.
Where you wrote:
string.lower()
You should have:
string = string.lower()
This will lowercase the string and then save the results back into the string variable.
Hope this helps!
Sam Wederell
20,276 PointsSam Wederell
20,276 PointsThanks. works perfectly now