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 (Retired) Dictionaries Membership

Drew Butcher
Drew Butcher
33,160 Points

Expected 2 got 0

The following code gives me a return of 2 on my computer but Treehouse says they get zero back. Any ideas?

counts.py
def members(dict, list):
  count = 0
  for key in dict:
    for item in my_list:
      if item == key:
        count += 1
  return count

my_dict = {'apples': 1, 'bananas': 2, 'coconuts': 3}
my_list = ['apples', 'coconuts', 'grapes', 'strawberries']

members(my_dict, my_list)
Drew Butcher
Drew Butcher
33,160 Points

Never mind I see the problem... call my_list in function.... should have been list

2 Answers

You are over-thinking it a bit. You only need to check keys membership in the dict and then check if it's in the list. so your code should look like this, with only one for loop.

def members (dict, list):
    count = 0
    for key in dict:
      if key in list:
         count += 1
    return count

hope this helps

Drew Butcher
Drew Butcher
33,160 Points

Never mind I see the problem... call my_list in function.... should have been list