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

getting an error stating Didn't get the right output from covers. However when I test, my output seems to be spot on.

So this is for the first part of this challenge, When I test the code on my own, the output seems to match the requirements, Is it because I am appending the key of the courses to my List and that is somehow mutating the COURSES dict? stumped

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(SET):
    List = []
    items = COURSES.items()
    for key, value in items:
        if SET <= value:
                List.append(key)
    return List

1 Answer

Steven Parker
Steven Parker
229,732 Points

The instructions are asking for a function that checks for any overlap, not necessarily a complete subset.

So , for example:

covers({"arrays", "loops"})  # should produce: ['Python Basics', 'Java Basics']

Thanks, looks like the correct set math for this is if SET & value: interesting enough is that the code I presented in the answer solves the second half of the challenge so I was getting ahead of myself, lol Thank you for your response.

Steven Parker
Steven Parker
229,732 Points

I almost mentioned that this might be a good solution for task 2, but I figured you'd realize it once you saw those instructions. :wink: