不导入库如何将CSV对应的二维列表转换为列头为键的字典
嵌套列表/二维数组转列向字典实现方案
实现逻辑
无需导入任何第三方库,仅用Python原生语法即可实现,核心思路是拆分表头与数据行,按列索引提取对应值:
- 取嵌套列表的第一个元素作为字典的键集合(表头)
- 剩余元素作为数据行,按每个表头对应的列索引,依次从所有数据行中提取该位置的值,组成列表作为对应键的值
示例代码
源数据定义
source_data = [ ['col1', 'col2', 'col3', 'col4', 'col5'], ['1', 'a', 'd', 'g', 'j'], ['2', 'b', 'e', 'h', 'k'], ['3', 'c', 'f', 'I', 'l'] ]
基础循环写法(易理解)
# 拆分表头和数据行 headers = source_data[0] data_rows = source_data[1:] result = {} for col_index in range(len(headers)): # 提取当前列的所有数据 current_col = [row[col_index] for row in data_rows] result[headers[col_index]] = current_col
简洁写法(字典推导式)
headers = source_data[0] result = { header: [row[idx] for row in source_data[1:]] for idx, header in enumerate(headers) }
执行后得到的result就是要求的目标字典结构。
二维数组兼容性说明
Python中的嵌套列表本质就是二维数组的原生实现形式,只要你的二维数组满足以下规则,就可以完全复用上述逻辑,不需要任何修改:
- 第一行是表头,长度等于每一列的字段数量
- 后续所有数据行的长度和表头长度一致
如果存在数据行长度不一致的场景,可以自行添加判断逻辑,比如对长度不足的行补空值、跳过异常行等,适配业务需求即可。
内容的提问来源于stack exchange,提问作者EthanM538
相关产品推荐
相关产品推荐

