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

wordcount.py - could someone help me find what went wrong on this code ?

def word_count(arg1): string_low = arg1.lower() string = string_low.split(" ") result = {} for item in string: count = string.count(item) result[item]=count return result

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(arg1):
    string_low = arg1.lower()
    string = string_low.split(" ")
    result = {}
    for item in string:
        count = string.count(item)
        result[item]=count
    return result

2 Answers

Ryan S
Ryan S
27,276 Points

Hi Harihar,

Your code is pretty much correct, however it is not effectively handling all forms of whitespace. You are only splitting on single spaces. But what about double spaces, or tabs, or newlines?

Here is a hint: if you don't pass any arguments to .split() then it will split on all whitespace.

Here is my code which works, please study it and compare it with yours. I think you have done a great job. I found dictionaries to be quite challenging and had to review a couple times.

myword ="I do not like it Sam I Am"

def word_count(sentence):
  my_dict = {}
  sentence = sentence.lower().split()
  for sen in sentence:
    if sen in my_dict:
      count = my_dict[sen] + 1
      my_dict[sen] = count
    else:
      my_dict[sen] = 1
  return my_dict