【问题标题】:How to append column when compared columns are equal比较列相等时如何追加列
【发布时间】:2021-04-19 17:36:44
【问题描述】:

我有两个列表,我需要根据两个列表中都存在的列名进行合并。源是 JSON。 我不知道该怎么做,我查看了How to merge multiple dicts with same key?,但那个没有任何限制。

例子:

dict1 = {"a": 3, 'b': 4}
dict2 = {"a": 3, 'c': 5}
dict3 = {"a": 1, 'b': 2}
dict4 = {"a": 1, 'c': 8}

dict_result = [{"a": 3, 'b': 4, 'c': 5},{"a": 1, 'b': 2, 'c': 8}]

BR

【问题讨论】:

  • 您是否总是只需要字典中的 3 个元素?在没有重复元素的情况下,是否也可以添加预期的 O/P?
  • 我有大约 500 多行,但是是的,列总是相同的。但我希望找到一种方法来添加新列,其中参考列比较元素的添加顺序。我可以用 MS Excel 来做,但这里有问题
  • 我有一个答案。我不确定这是否正确。你介意检查一下吗?
  • @JacksonPro 我在哪里可以看到这个答案?

标签: python list dictionary merge


【解决方案1】:

来试试这个。

dict1 = {"a": 3, 'b': 4}
dict2 = {"a": 3, 'c': 5}
dict3 = {"a": 1, 'b': 2}
dict4 = {"a": 1, 'c': 8}

def merge_dictionary(*args):
    dictionary = []
    dict_result=[]
    app_index = 0 # append index

    for dic in (args):
        for item, value in dic.items():
            if [item, value] not in dictionary:
                dictionary.append([item, value])


    for index, x in enumerate(dictionary):
        
        if index%3==0: 
            dict_result.append({x[0]:x[1]})
            app_index = index
       
        else:
            dict_result[app_index//3].update({x[0]:x[1]})

    return dict_result

print(merge_dictionary(dict1, dict2, dict3, dict4))


【讨论】:

    猜你喜欢
    • 2012-12-26
    • 2014-07-15
    • 1970-01-01
    • 2012-05-11
    • 2016-03-06
    • 2013-03-29
    • 2010-12-10
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多