词典列表:
data = [{
'a':{'l':'Apple',
'b':'Milk',
'd':'Meatball'},
'b':{'favourite':'coke',
'dislike':'juice'}
},
{
'a':{'l':'Apple1',
'b':'Milk1',
'd':'Meatball2'},
'b':{'favourite':'coke2',
'dislike':'juice3'}
}, ...
]
我需要加入所有嵌套字典以达到预期的输出:
[{'d': 'Meatball', 'b': 'Milk', 'l': 'Apple', 'dislike': 'juice', 'favourite': 'coke'},
{'d': 'Meatball2', 'b': 'Milk1', 'l': 'Apple1', 'dislike': 'juice3', 'favourite': 'coke2'}]
我尝试嵌套列表理解,但无法将dict连接在一起:
L = [y for x in data for y in x.values()]
print (L)
[{'d': 'Meatball', 'b': 'Milk', 'l': 'Apple'},
{'dislike': 'juice', 'favourite': 'coke'},
{'d': 'Meatball2', 'b': 'Milk1', 'l': 'Apple1'},
{'dislike': 'juice3', 'favourite': 'coke2'}]
我正在寻找最快的解决方案。
您可以使用^{} 和一个简单的列表理解来将dicts的列表展平
时间基准如下:
我机器上其他答案的时间基准
您可以使用2个嵌套循环来完成此操作,然后^{} 将内部字典添加到临时字典并在末尾添加:
哪些输出:
您可以使用^{} 执行以下操作:
使用
chain
、map
、*
使这个表达式成为以下双重嵌套理解的简写,它实际上在我的系统(Python 3.5.2)上执行得更好,而且不会太长:注:
RoadRunner's循环和更新方法在
timeit: ~1.37
方面优于这两种单行方法相关问题 更多 >
编程相关推荐