如何使用不同的键合并列表中的字典?

时间:2019-09-05 19:42:48

标签: python list dictionary

我有一个像[{"username":"example"},{"password":"example2"},{"username":"example3"},{"password":"example4"}]

这样的列表

所以我想合并具有不同键的对象。 看起来应该像[{"username":"example","password":"example2"},{"username":"example3","password":"example4"}]

实际上,我永远不会知道按键。该数组动态创建。 因此,代码应随时可用。例如:当有四个不同的键或三个或六个时。

我该如何应对这一挑战?

感谢和问候。

1 个答案:

答案 0 :(得分:2)

不确定这将总是输出正确的输出(您没有提供很多用例),但是我确定这将使您走上正确的轨道:

li = [{"username":"example"},{"password":"example2"},
      {"username":"example3"},{"password":"example4"}]

dict_list = []

for d in li:
    if not dict_list:
        dict_list.append(d)
    else:
        for d_ in dict_list:
            if list(d.keys())[0] not in d_:
                d_.update(d)
            else:
                dict_list.append(d)
            break

dict_list

[{'username': 'example', 'password': 'example2'},
 {'username': 'example3'}, {'password': 'example4'}]

即使订单不完善,也可以使用

li = [{"username":"example"}, {"username":"example3"}, 
      {"password":"example2"}, {"password":"example4"}]

将提供相同的输出