python - 将列表扁平化为字典列表
问题描述
我有一本看起来像这样的字典:
{'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']]]
解决方案
根据标题,我注意到您的字典中的每个项目中可能都有列表列表。使用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']}
推荐阅读
- swagger - .net core 3.1 升级:DataContract 和 DataMember - 无法隐藏字段
- django - 使用多个模型获取响应
- ruby-on-rails - 渲染后,浏览器不刷新页面
- python - 我创建的函数不会将结果保存到文本文件
- typescript - 装饰器不推断类型
- haskell - 除了 as-pattern,@在 Haskell 中还有什么含义?
- c# - 实体框架 ==> 不同 app.configs 中的选项
- google-apps-script - “抱歉,发生内部错误,您的请求未完成。” 尝试共享项目时
- java - 编写一个迭代 Map 的方法,查找包含值的 Object 条目,将此 Object 添加到新集合中,然后返回该集合
- python - 检查输入的值是否存在于列表中