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) Sets Set Math

Shreyas Papinwar
Shreyas Papinwar
2,371 Points

I checked this code offline and it works, but in treehouse I get an error message task 1 is no longer passing.

please check both the functions I made.

sets.py
COURSES = {
    "Python Basics": {"Python", "functions", "variables",
                      "booleans", "integers", "floats",
                      "arrays", "strings", "exceptions",
                      "conditions", "input", "loops"},
    "Java Basics": {"Java", "strings", "variables",
                    "input", "exceptions", "integers",
                    "booleans", "loops"},
    "PHP Basics": {"PHP", "variables", "conditions",
                   "integers", "floats", "strings",
                   "booleans", "HTML"},
    "Ruby Basics": {"Ruby", "strings", "floats",
                    "integers", "conditions",
                    "functions", "input"}
}

def covers(title):
    lists = []
    for key in title:
        string = key
    for course in COURSES:
        if string in COURSES[course]:
            lists.append(course)
    return lists




def covers_all(courses):
    list = []
    string = []
    for i in courses:
        string.append(i)
    for course in COURSES:
        if string in COURSES[course]:
            list.append(course)
    return list

1 Answer

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 68,441 Points

It looks like the indentation was disturbed in the covers function. Should be:

def covers(title):
    lists = []
    for key in title:
        string = key
        for course in COURSES:
            if string in COURSES[course]:
                lists.append(course)
    return lists

Also, there is no need to assign key to string. You can use key directly in the if statement.

For covers_all, you should not use the built-in type list as a variable name. Overriding the object list appears to affect the challenge checker and Task 1 stops working.

:point_right: Change the variable list to "lst" or "result" or some other name.

:point_right: The challenge is looking for set math. Try exploring set.intersection or ^& to solve the task!

Post back if you have more questions. Good luck!!