Skip to content
Advertisement

Dictionary keys match on list; get key/value pair

In python… I have a list of elements ‘my_list’, and a dictionary ‘my_dict’ where some keys match in ‘my_list’.

I would like to search the dictionary and retrieve key/value pairs for the keys matching the ‘my_list’ elements.

I tried this…

    if any(x in my_dict for x in my_list):
          print set(my_list)&set(my_dict)

But it doesn’t do the job.

Advertisement

Answer

(I renamed list to my_list and dict to my_dict to avoid the conflict with the type names.)

For better performance, you should iterate over the list and check for membership in the dictionary:

for k in my_list:
    if k in my_dict:
        print(k, my_dict[k])

If you want to create a new dictionary from these key-value pairs, use

new_dict = {k: my_dict[k] for k in my_list if k in my_dict}
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement