如何使用给定的映射从旧字典创建新字典?

时间:2014-06-13 06:01:18

标签: python dictionary

我正在寻找的是一个寻找旧字典和映射的Python函数。应使用旧字典中的给定映射返回新字典。

old_dic = {"a":"1", "b":"2", "c":"3", "d":"4"}
mapping_dic = {"a":"e", "c":"f", "d":"g"}

因此,应该形成包含键e,f和g的新词典。它应该看起来像:

new_dic = {"e":"1", "f":"3", "g":"4"}

3 个答案:

答案 0 :(得分:2)

dict comprehension:

{v: old_dic[k] for k,v in mapping_dic.items()}

输出:

{'e': '1', 'f': '3', 'g': '4'}

答案 1 :(得分:0)

这可行,但也许有更好的方法:

new_dic = dict((mapping_dic[key], val) for key, val in old_dic.items() if key in mapping_dic)

答案 2 :(得分:0)

试试这个:

def numberofbagels(oldmap, trans):
    newmap = {}
    for key in oldmap:
        if key in trans:
            newmap[trans[key]] = oldmap[key]
    return newmap

old_dic = {"a":"1", "b":"2", "c":"3", "d":"4"}
mapping_dic = {"a":"e", "c":"f", "d":"g"}

print "%s"%(str(numberofbagels(old_dic,mapping_dic)))