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 trialOmar Farag
4,573 PointsNot finding the sets
Any help as to why this doesn't pass?
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(idk):
courses = []
for course in COURSES:
if course.intersection(idk) == True:
courses.extend(course)
return courses
1 Answer
Lukas Dahlberg
53,736 PointsYou aren't iterating over a dictionary with a for loop correctly.
And intersection doesn't return a boolean value. You'll want to check the size of the result instead.
Finally, don't use .extend() unless you want to add each of the individual elements of the string to the array. Use .append() instead.
def covers(idk):
courseResult = []
for key, value in COURSES.items():
if (len(value.intersection(idk)) > 0):
courseResult.append(key)
return courseResult
Omar Farag
4,573 PointsOmar Farag
4,573 PointsAn intersection CAN return a boolean value. I'm not checking for the value of the intersection, I'm checking if there is a value in the first place. As for everything else, thank you, I passed the challenge.