我正在寻找的是一个寻找旧字典和映射的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"}
答案 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)))