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 (Retired) Dictionaries Teacher Stats

Lok C
Lok C
10,617 Points

Kept getting the error 'Where's most_classes()?'

Hi, it seems that no matter what I do - i kept getting the error 'Where's 'most_classes()'? Whether it works or not, it's obviously there, not sure how to fix it.

teachers.py
# The dictionary will be something like:
# {'Jason Seifer': ['Ruby Foundations', 'Ruby on Rails Forms', 'Technology Foundations'],
#  'Kenneth Love': ['Python Basics', 'Python Collections']}
#
# Often, it's a good idea to hold onto a max_count variable.
# Update it when you find a teacher with more classes than
# the current count. Better hold onto the teacher name somewhere
# too!
#
# Your code goes below here.

def most_classes(somedic):
  names = []
  for key in somedic:
    names.append(key)
  num = {}
  for name in names:
    count = 0
    for value in thedic[name]:
      count += 1
      num[name] = count
  max_count = 0
  for key in num.keys():
    if num[key] > max_count:
      most = key
      max_count = num[key]
    else:
      pass
  return most

1 Answer

I am not sure why it is throwing down that error in particular, but your code is a lot longer than it has to be. For one, you should not have to create a list to create this function. Dictionaries are really powerful in Python because of their convenient methods for retrieving data. Remember:

for akey in somedic.keys():
    print(akey)

would return each key in the dictionary. In addition:

for akey in somedic.keys():
   print(somedic[akey]))

would return the values associated with each particular key.

So try to approach the problems using the tools available for dictionaries .

Hope this helps!

Also the len() function helps a lot for this problem!

Lok C
Lok C
10,617 Points

Thank you! I was able to make the code shorter with your suggestion.