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

ilker senturk
ilker senturk
17,583 Points

it should be working but i didnt get it

def members(my_dict,my_list): count =0 keys =my_dict.keys() values =my_dict.values()

for key in keys: for element in my_list: if key ==element: count =count+1 for value in values: for element in my_list: if value == element: count =count+1

counts.py
# 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
def members(my_dict,my_list):
  count =0
  keys =my_dict.keys()
  values =my_dict.values()

  for key in keys:
    for element in my_list:
      if key ==element:
        count =count+1
  for value in values:
    for element in my_list:
      if value == element:
        count =count+1

1 Answer

hie ilker. I think you went a little bit overboard. Firstly there is no need to add the bit that checks for values since we have been told that its a list of keys which means there are no values in this list. You got the first part right that is defining the function and initializing count.

Now to check for the dictionary key that are also list member, we will use the for loop just like what you did but lets forget the variable that you used here and check for key membership in the dictionary directly as hinted in the code. Then we use an if statement to check if that key is also in the list, if its there we increment count by 1. Finally we return the value of count.

This should do the work.

def members(my_dict,my_list):

count = 0

for key in my_dict:

    if key in my_list:

    count = count + 1

return count