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

Robert Day
Robert Day
1,347 Points

Wonder why this challenge is not passing...

I think this code is a bit clumsy but in Workspaces it gives the output I am expecting i.e. a list of the course names where my test set overlaps.

However it is not passing the challenge. Any suggestions as to why not?

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):
    a=[]

    if len(COURSES["Python Basics"]&set)==len(set):
        a.append("Python Basics")

    if len(COURSES["Java Basics"]&set)==len(set):
        a.append("Java Basics")

    if len(COURSES["PHP Basics"]&set)==len(set):
        a.append("PHP Basics") 

    if len(COURSES["Ruby Basics"]&set)==len(set):
        a.append("Ruby Basics")   

    return(a)

1 Answer

Steven Parker
Steven Parker
229,981 Points

You're probably being too restrictive.

For task 1, you want to return any overlap, not just the cases where all items overlap. So requiring the merged sets to be the same size as the argument set isn't necessary (or desirable).

Robert Day
Robert Day
1,347 Points

Thanks a lot Steven! Well explained. That did it.