【问题标题】:Mappings two list of dict by key按键映射两个dict列表
【发布时间】:2022-07-27 23:21:31
【问题描述】:

我有两个带有 Python 的 dict 列表,但有一个问题我不知道如何解决?

my_list_a = [
             {"code": "A", "name": "Mr A"},
             {"code": "B", "name": "Mrs B"},
             {"code": "C", "name": "Mrs C"}
]

my_list_b = [
             {"code": "A", "university": "Oxford"},
             {"code": "B", "university": "Stanford"},
             {"code": "B", "university": "Harvard"},
]

# my expected result is:
my_list = [
             {"code": "A", "name": "Mr A", "university": "Oxford"},
             {"code": "B", "name": "Mrs B", "university": "Stanford"},
             {"code": "B", "name": "Mrs B", "university": "Harvard"},
             {"code": "C", "name": "Mrs C", "university": ""},
]

如所见,我需要将两个数据列表映射在一起,键是"code"

我不知道如何使它正确?有什么办法可以得到预期的结果?

【问题讨论】:

    标签: python list dictionary product


    【解决方案1】:

    您可以使用itertool.productlist comprehension

    from itertools import product
    res = [{**da , **db} for da, db in product(*[my_list_a, my_list_b]) if da['code']==db['code']]
    print(res)
    

    [{'code': 'A', 'name': 'Mr A', 'university': 'Oxford'},
     {'code': 'B', 'name': 'Mrs B', 'university': 'Stanford'},
     {'code': 'B', 'name': 'Mrs B', 'university': 'Harvard'}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2012-06-19
      • 2011-12-04
      相关资源
      最近更新 更多