Home > Blockchain >  I do not understand how to switch keys while using two dictionaries... please help me its been two h
I do not understand how to switch keys while using two dictionaries... please help me its been two h

Time:04-30

 """
    Given two dictionaries, find the keys they have in common,
    and return a new dictionary that maps the corresponding values.

    Example:
    dict1 == {"a":"alpha", "d":"delta", "x":"xi"}
    dict2 == {"b":"bet", "d":"dalet", "l":"lamed", "a":"alef"}
    should return:
    {"alpha":"alef", "delta":"dalet", "beta":"bet"}
    """
    dict1 == {"a":"alpha", "d":"delta", "x":"xi"}
    dict2 == {"b":"bet", "d":"dalet", "l":"lamed", "a":"alef"}
    new_dict = {}
    for key, value in dict1.items():
        if value in new_dict:
            new_dict[value].append(key)
        else:
            new_dict[value]=[key]

this is what I have, all I have to di is make it so that the output is what is the same as {"alpha":"alef", "delta":"dalet", "beta":"bet"} which is just switching the keys ,this is just giving me way more trouble that it should be, Please help me ;-;

CodePudding user response:

According to your question if two dictionaries are like this:

dict1= {"a":"alpha", "d":"delta", "x":"xi"}
dict2 == {"b":"bet", "d":"dalet", "l":"lamed", "a":"alef"}
comm_keys = set(dict1.keys()).intersection(dict2.keys())
required_dict = {dict1[key]: dict2[key] for key in comm_keys}
# Expected output : {'delta': 'dalet', 'alpha': 'alef'}

CodePudding user response:

One more way which you can do this is to use dictionary comprehension

dict1 = {"a": "alpha", "d": "delta", "x": "xi"}
dict2 = {"b": "bet", "d": "dalet", "l": "lamed", "a": "alef"}

output = {dict1[x]: dict2[x] for x in dict1 if x in dict2}

{'alpha': 'alef', 'delta': 'dalet'}
  • Related