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 trialAtul Jha
3,592 Pointsnot able to go through the task....but code working on workspace!
unable to figure out the error in m code
# You can check for dictionary membership using the
# "key in dict" syntax from lists.
### Example
# my_dict = {'apples': 1, 'bananas': 2, 'coconuts': 3}
# my_list = ['apples', 'coconuts', 'grapes', 'strawberries']
# members(my_dict, my_list) => 2
output = []
def members(my_dict, my_list):
count = 0
for key in my_dict:
for word in my_list:
if word == key:
count += 1
output.append(word)
else:
continue
print(count)
return(count, output)
2 Answers
Chris Freeman
Treehouse Moderator 68,441 PointsYou want to avoid looping over both the dict and the list as this has len(dict)*len(list) comparisons. If the dict was huge that would lead to many unnecessary comparisons. Instead, loop over the small list and do a simple check for the key:
def members(my_dict, my_list):
count = 0
for word in my_list:
if word in my_dict:
count += 1
return count
Afrid Mondal
6,255 PointsHi Atul, You are doing just some extra work I think. What yu have to do just return the number counts.
def members(my_dict, my_list):
count = 0
for key in my_dict:
for word in my_list:
if word == key:
count += 1
return count
Atul Jha
3,592 PointsThank you!
Atul Jha
3,592 PointsAtul Jha
3,592 PointsThank you!..It makes a lot of sense.!