Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Python Collections (2016, retired 2019) Dictionaries Teacher Stats

Joel Price
Joel Price
13,711 Points

Task 4 of teachers.py no longer passing after editing code for task 5?

Did I use a string or something somewhere that contradicts with the previous task?

teachers.py
# The dictionary will look something like:
# {'Andrew Chalkley': ['jQuery Basics', 'Node.js Basics'],
#  'Kenneth Love': ['Python Basics', 'Python Collections']}
#
# Each key will be a Teacher and the value will be a list of courses.
#
# Your code goes below here.
def num_teachers(dic):
    return len(dic)

def num_courses(dic):
    total = 0
    for i in dic:
        total += len(dic[i])
    return total

def courses(dic):
    thing = []
    for value in dic.values():
        thing += value
    return thing

def most_courses(dic):
    max_count = 0
    teacher_most_classes = " "
    for key in dic:
        if len(dic[key]) > max_count:
            max_count = len(dic[key])
            teacher_most_classes = key
    return key

def stats(dic):
    outer_list = []
    for key in dic:
        inner_list = []
        inner_list.append(key)
        inner_list.append(len(dic[key]))
        outer_list.append(inner_list)
    return outer_list

1 Answer

Stuart Wright
Stuart Wright
41,102 Points

That's odd. This is the second time I've seen someone post code that fails task 5 for the same reason. And both times the code for task 4 has actually been wrong, so I wonder how task 5 was reached in the first place! :)

You are almost correct. You just need to return 'teacher_most_classes' rather than 'key' for task 4. That way you are returning the teacher with the most courses, rather than simply the last key in the loop.

Your code for task 5 is correct.

My guess (and it is just a guess) is that your code passed task 4 because 'key' happened to contain the same value as 'teacher_most_classes' when Treehouse tested it, and it was therefore considered correct. Such is the unordered nature of dictionaries, it is possible that the code could pass the challenge by chance on one occasion, but not another.

Joel Price
Joel Price
13,711 Points

That is strange that it's letting me pass if my code is bad. But that seems to have done the trick! Thank you!