为了账号安全,请及时绑定邮箱和手机立即绑定

Python 中字典之间的映射

Python 中字典之间的映射

千巷猫影 2023-08-08 09:57:35
我有两个字典,我想根据以下条件映射它们:结果字典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()}


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信