min(animals, key=lambda x: animals[x]['cool_factor'] * animals[x]['popularity']
    )
"""echidna"""
max(animals, key=lambda x: animals[x]['cool_factor'] * animals[x]['popularity']
    )
Pythonic way to find key of weighted minimum and maximum from a dictionary