在不影响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'],
“设备”:[“笔记本电脑”、“平板电脑”、“触摸屏”]]