Python Python Collections (2016, retired 2019) Dictionaries Word Count

Jonathan Bravo
Jonathan Bravo
19,072 Points

Incorrect Output?

I have run this code multiple times in a terminal and I get the correct output. What could be causing incorrect output?
# 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 = string.lower()
  string = list(string.split(' '))
  d = {}
  for word in string:
    d[word] = string.count(word)
  return d
Jonathan Bravo
Jonathan Bravo
19,072 Points

Ended up working by just doing the second suggestion. Thanks so much!

1 Answer

Couple of things:

  1. You need to change d[word] = string.count(word) to an if statement if word in d: d[word] += 1 else: d[word] = 1
  2. Remove the ' ' in split(' ') - this should work regardless but not in this course