【问题标题】:Python3 - Intersecting dictionaries and merging their values into a list [duplicate]Python3 - 相交字典并将它们的值合并到一个列表中[重复]
【发布时间】:2021-04-10 11:27:42
【问题描述】:

给定两个字典:

dict1 = { 1:'A', 2:'B', 3:'C' }
dict2 = { 1:'X', 2:'Y' }

我需要通过键与这些字典相交(删除那些键在两个字典中都不可用的条目)并将它们组合到一个字典中,并将列表作为值:

result = { 1:['A','X'], 2:['B','Y'] }

到目前为止,我只将这两个字典合并为一个,但没有删除提到的条目:

{key:[dict1[key], dict2[key]] for key in dict1}

【问题讨论】:

    标签: python python-3.x dictionary


    【解决方案1】:

    对于 dict1 的每个键,检查该键是否存在于 dict2 中并在它之后进行合并

    dict1 = { 1:'A', 2:'B', 3:'C' }
    dict2 = { 1:'X', 2:'Y' }
    
    result = {}
    
    for key in dict1:
        if key in dict2:
            result[key] = [dict1[key], dict2[key]]
    
    

    【讨论】:

    • 你是对的!不知何故,它在我的脑海中看起来更加复杂。谢谢!
    【解决方案2】:

    您可以检查它是否存在于另一个键中并附加它。这将处理任意数量的字符串作为值。

    x = { 1:'A', 2:'B', 3:'C' }
    y = { 1:'X', 2:'Y' }
    
    for k, v in x.items():
        if k in y.keys():
            y[k] = [y[k]]
            y[k].append(v)
        else:
            y[k] = [v]
        
    print(y)
    

    【讨论】:

      猜你喜欢
      • 2017-12-02
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2020-05-30
      • 1970-01-01
      • 2017-11-27
      相关资源
      最近更新 更多