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 trialSergio Lopez
13,088 PointsHello. I am totally lost in this challenge. I have a rough idea of how to proceed but i can't get it right.
So i start assigning the string to a variable:
mystring = "this is not what this is"
Then define the function with mystring as an argument
def word_count(mystring):
inside the function, convert the string into a list and set a counter for the repeated words
mylist = mystring.split() counter = 0
so far, so good. Now, here is the beginning of my confussion; for word in mylist: if word is in mylist counter += 1 mydict [word] = counter
I know my problem is in my logic, somewhere within my function.
Can you help me?
Thank you.
# E.g. word_count("I am that I am") gets back a dictionary like:
# {'i': 2, 'am': 2, 'that': 1}
# Lowercase the string to make it easier.
# Using .split() on the sentence will give you a list of words.
# In a for loop of that list, you'll have a word that you can
# check for inclusion in the dict (with "if word in dict"-style syntax).
# Or add it to the dict with something like word_dict[word] = 1.
1 Answer
Kenneth Love
Treehouse Guest TeacherYou probably don't want a counter outside of your loop. When the first word shows up, your counter goes to 1. What does it do for the second word?
Instead, start with a dictionary that'll hold the words and how many times they shown up. If the word isn't in the dictionary, add it and set the value to 1 (since you've now seen it 1 time). If it's already there, add 1 to the word's current value in the dict.