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

Could someone tell me why my code isn't returning the right output?

I've checked out other answers and seen an answer that works:

def covers(set_of_topics): output = [] for course, value in COURSES.items(): if set_of_topics & value: output.append(course) return output

But I'm still not seeing why mine doesn't work! Anyone have an answer? Thanks!

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_of_topics):
    output = []
    for course in COURSES:
        if set_of_topics & COURSE[course]:
            output += course
    return output

1 Answer

Dave StSomeWhere
Dave StSomeWhere
19,870 Points

Two issues pop out to me (try executing your code and these should be easy to see), Glad to see you are using intersection here - the main focus of the challenge.

  1. You reference COURSE[course] - shouldn't that be COURSES[course]
  2. Your assignment will be like extend() and add each letter of your string literal as an entry in your output variable. Try using append() and you should pass. (would be worthwhile to test and see the difference between the two).

:palm_tree: :tropical_drink:

Thanks Dave! Super helpful!