gd1
gd1

Reputation: 653

Dictionaries comparison in python

Two dictionaries are as:

dict1 = {'providers': 'aetna, united_health, cardinal'}
dict2 = {'aetna': ['13e2345', '13e2346'], 'bcbs': ['901E12'], 'united_health': []}

I need to compare two dictionaries and print data from dict2 if matches with data in dict1.

Expected output:

{'aetna': ['13e2345', '13e2346'], 'united_health': []}

Upvotes: 0

Views: 71

Answers (2)

iz_
iz_

Reputation: 16593

You can use a simple dictionary comprehension:

dict1 = {'providers': 'aetna, united_health'}
dict2 = {'aetna': ['13e2345', '13e2346'], 'bcbs': ['901E12'], 'united_health': []}

providers = set(dict1['providers'].split(', '))
new_dict2 = {k: v for k, v in dict2.items() if k in providers}
print(new_dict2)

Output:

{'aetna': ['13e2345', '13e2346'], 'united_health': []}

Upvotes: 3

anjaneyulubatta505
anjaneyulubatta505

Reputation: 11665

dict1 = {'providers': 'aetna, united_health'}
dict2 = {'aetna': ['13e2345', '13e2346'], 'bcbs': ['901E12'], 'united_health': []}

result = {key: dict2.get(key, []) for key in dict1.get('providers').split(', ')}

output:

{'aetna': ['13e2345', '13e2346'], 'united_health': []}

Upvotes: 0

Related Questions