首页 > 解决方案 > 将列表扁平化为字典列表

问题描述

我有一本看起来像这样的字典:

{'data': [['748','','285','102','76024']]}

我想将列表展平为如下所示:

{'data': ['748','','285','102','76024']}

我从这里试过这个:

[item for sublist in data.items() for item in sublist]

但它给了我:

['数据',[['748','','285','102','76024','88','3','89%831','77%','','68 %632', '19%177', '13%120']]]

标签: pythonlistdictionary

解决方案


根据标题,我注意到您的字典中的每个项目中可能都有列表列表。使用itertools.chain()您可以将多个列表合并为一个:

import itertools
data = {'data': [['748','','285','102','76024']]}
data1 = {'data': [['748','','285','102','76024'], ['12', '13', '14']]}

output = {k: list(itertools.chain(*v)) for k,v in data.items()}   
output1 = {k: list(itertools.chain(*v)) for k,v in data1.items()}   

输出:

# Output
{'data': ['748', '', '285', '102', '76024']}

# Output1
{'data': ['748', '', '285', '102', '76024', '12', '13', '14']}

推荐阅读