在不影响python中键和值方向的情况下组合嵌套列表

在不影响python中键和值方向的情况下组合嵌套列表,python,list,Python,List,我有一个在列表中存储数据的程序。当前和所需输出的格式如下: #当前输入 [{'Devices':['laptops','tablets'], “父类别”:[“计算机”,“计算机”]}, {'Devices':['touch'],'ParentCategory':['phones']}] #期望输出 [{'Devices':['Laptop'、'Tablet'、'touch'], “父类别”:[“计算机”、“计算机”、“电话”]] 您能告诉我如何将列表与另一行python代码或逻辑结合起来以获得

我有一个在列表中存储数据的程序。当前所需输出的格式如下:

#当前输入
[{'Devices':['laptops','tablets'],
“父类别”:[“计算机”,“计算机”]},
{'Devices':['touch'],'ParentCategory':['phones']}]
#期望输出
[{'Devices':['Laptop'、'Tablet'、'touch'],
“父类别”:[“计算机”、“计算机”、“电话”]]

您能告诉我如何将列表与另一行python代码或逻辑结合起来以获得所需的输出吗?

您可以这样做:

def convert(a):
    d = {}
    for x in a:
        for key,val in x.items():
            if key not in d:
                d[key] = []
            d[key] += val
    return d
上面的代码是针对Python3的


如果您使用的是Python2.7,那么我认为您应该使用dict理解方法将
项替换为
iterms
解决方案:首先通过计算应该具有哪些键来构建合并字典,然后通过连接每个键的所有列表来构建合并字典。键集和每个生成的列表都是使用

来自itertools导入链的

def合并指令(*指令):
返回{
k:列表(链自可数(如果k在d中,则d[k]在dicts中代表d))
对于集合中的k(链自可数(dicts))
}
用法:

合并指令({'a':[1,2,3],'b':[4,5]},{'a':[6,7],'c':[8]}) {'a':[1,2,3,6,7],'b':[4,5],'c':[8]} >>>ds=[ {'Devices':['laptop','tablets'], “父类别”:[“计算机”,“计算机”]}, {'Devices':['touch'], “家长类别”:[“电话”]} ] >>>合并指令(*ds) {'ParentCategory':['computers'、'computers'、'Phone'], “设备”:[“笔记本电脑”、“平板电脑”、“触摸屏”]]