So I'm having trouble with a homework question.
Write a function word_counter(input_str) which takes a string input_str and returns a dictionary mapping words in input_str to their occurrence counts.
So the code I have so far is:
def word_counter(input_str):
'''function that counts occurrences of words in a string'''
sentence = input_str.lower().split()
counts = {}
for w in sentence:
counts[w] = counts.get(w, 0) + 1
items = counts.items()
sorted_items = sorted(items)
return sorted_items
Now when I run the code with a test case such as word_counter("This is a sentence")
in the Python shell I get the result of:
[('a', 1), ('is', 1), ('sentence', 1), ('this', 2)]
Which is what is required. However, the test code that is used to check the answer is:
word_count_dict = word_counter("This is a sentence")
items = word_count_dict.items()
sorted_items = sorted(items)
print(sorted_items)
And when I run it with that code I get the error:
Traceback (most recent call last):
File "<string>", line 2, in <fragment>
builtins.AttributeError: 'list' object has no attribute 'items'
Not sure how to change my code so that it works with the test code given.