python - 如何将列表列表更改为字典字典?
问题描述
例如,我有以下列表列表
A = [['PokedexNumber', 'Name', 'Type', 'Total'], [1.0, 'Bulbasaur', 'GrassPoison', 318.0], [2.0, 'Ivysaur', 'GrassPoison', 405.0],[3.0, 'Venusaur', 'GrassPoison', 525.0]]
我如何将其更改为字典词典?
B = { 1.0 : { 'Name' : 'Bulbasaur', 'Type' : 'GrassPoison', 'Total' : 318.0},
2.0 : {'Name' : 'Ivysaur', 'Type' : 'GrassPoison', 'Total' : 405.0},
3.0 : {'Name' : 'Venusaur', 'Type' : 'GrassPoison', 'Total' : 525.0}
}
解决方案
您可以使用序列解包和字典理解:
(_, *headers), *data = A
res = {num: dict(zip(headers, values)) for num, *values in data}
结果:
{1.0: {'Name': 'Bulbasaur', 'Type': 'GrassPoison', 'Total': 318.0},
2.0: {'Name': 'Ivysaur', 'Type': 'GrassPoison', 'Total': 405.0},
3.0: {'Name': 'Venusaur', 'Type': 'GrassPoison', 'Total': 525.0}}
推荐阅读
- git - Openshift 3.11 source-to-image (s2i) build 不使用标准 ssh 端口
- python - 如何通过舍入结果来规范化数组(python、numpy、scipy)
- rust - 如何在 WASM-Bindgen 和 Rust 中实际获取响应正文的文本
- c - 为什么 Mingw-w64 gcc 编译器会生成有关 %zd 和 %a 格式的错误警告
- css - 3 个月前的 Cucumber/Java 验证结果日期
- .net - 实体框架一对多关系错误
- vue.js - Nuxt & Vue - Element UI 在浏览器后退按钮事件上保持活动菜单项
- debian - Wireguard 安装错误:无法纠正问题,您持有损坏的软件包。但是,没有包裹
- bash - 使用 shellscript 编译我的源代码 (C)
- jquery - 如何使用jquery在HTML5中设置表格单元格的背景和字体颜色