Python 中字典之间的映射

我有两个字典,我想根据以下条件映射它们:

  1. 结果字典map_result应包含resp_dict中的所有项目,但应从map_dict中选取键,以防resp_dict的键与map_dict中的值匹配。

  2. 如果 resp_dict 中的键在 map_dict 中不存在,则该键、值必须传递给 map_result(结果字典)。

  3. 如果 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'}


有人可以帮助我找到实现这一目标的最佳方法吗?


千巷猫影
浏览 68回答 1
1回答

吃鸡游戏

准备反向名称查找:name = {v: k for k, v in map_dict.items()}然后使用它:map_result = {name.get(k, k): v for k, v in resp_dict.items()}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python