我有两个字典,我想根据以下条件映射它们:结果字典map_result应包含resp_dict中的所有项目,但应从map_dict中选取键,以防resp_dict的键与map_dict中的值匹配。如果 resp_dict 中的键在 map_dict 中不存在,则该键、值必须传递给 map_result(结果字典)。如果 map_dict 中存在任何项目但 resp_dict 中不存在,则完全忽略它。下面是我正在寻找的示例 -resp_dict = {'name': "Rodney", 'prop_9986': "http://rodrnylynch.com", 'prop_7635': "7164084552", 'status': "Active", 'prop_5346': "pkunch"}map_dict = {'user_name': "name", 'self_website': "prop_9986", 'account_number': "prop_7635", 'page_name': "profile_page"}map_result = {'user_name': "Rodney", 'self_website': "http://rodrnylynch.com", 'account_number': "7164084552", 'status': "Active", 'prop_5346': "pkunch"}我尝试了类似下面的方法,基本上满足上面提到的条件1和3,但不满足第二个条件。map_result = dict((k, resp_dict[map_dict[k]]) for k in map_dict if map_dict[k] in resp_dict)>>> map_result{'self_website': 'http://rodrnylynch.com', 'user_name': 'Rodney', 'account_number': '7164084552'}有人可以帮助我找到实现这一目标的最佳方法吗?
1 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
准备反向名称查找:
name = {v: k for k, v in map_dict.items()}
然后使用它:
map_result = {name.get(k, k): v for k, v in resp_dict.items()}
添加回答
举报
0/150
提交
取消