python - 如何将列表列表转换为字典
问题描述
event = [['col1','col2','col3'], ['A','B','C'], ['G','H','I'], ['J','K','L']]
- 我有清单清单
- 第一个列表是键
- 休息是价值观
预计出局
[{'col1': 'A', 'col2':'B'},{'col1': 'G', 'col2':'H'},{'col1': 'J', 'col2':'K'}]
代码如下
list_ = []
for entry in event [1:]:
row = {key: entry[idx] for idx, key in enumerate(event[0])}
list_.append(row)
list_
我的输出是
[{'col1': 'A', 'col2': 'B', 'col3': 'C'},
{'col1': 'G', 'col2': 'H', 'col3': 'I'},
{'col1': 'J', 'col2': 'K', 'col3': 'L'}]
- 我不想追加
col3
只需要添加前 2 列
解决方案
您可以切片event[0]
以[:-1]
忽略最后一个值
event = [['col1', 'col2', 'col3'], ['A', 'B', 'C'], ['G', 'H', 'I'], ['J', 'K', 'L']]
list_ = []
for entry in event[1:]:
row = {key: entry[idx] for idx, key in enumerate(event[0][:-1])}
list_.append(row)
print(list_) # [{'col1': 'A', 'col2': 'B'}, {'col1': 'G', 'col2': 'H'}, {'col1': 'J', 'col2': 'K'}]
如果要编辑名称,可以添加条件来检查值。使用列表推导
list_ = [{'country' if key == 'col1' else 'type': entry[idx] for idx, key in enumerate(event[0][:-1])} for entry in event[1:]]
推荐阅读
- javascript - 将 TypeORM 中的现有记录保存在 ManyToMany 表中
- python - 尝试在 heroku 上使用 DEBUG=False 部署 django 应用程序时出现服务器错误 (500)
- networking - Synology 中的反向代理和 NX 域错误
- python - 如何在图像上画一条线并检索线下的像素?
- python - 在不使用加载项的情况下从 Excel 调用机器学习 Python 脚本的简单方法
- visual-studio - 如何在 Visual Studio 中显示死键的击键
- r - 在引用类初始化中分配给 .self
- linux - 如何为作为 cron 作业运行的 nohup python 创建单独的日志?
- mysql - 如何阻止 Superset 将 AS 附加到 SQL 查询中?
- junit5 - Quarkus 2 vs JUnit TestInfo:带注释测试的类加载器问题