首页 > 解决方案 > 如何将csv更改为字典

问题描述

我有一个 csv 文件,其中列作为列表我想变成一个字典,其中列标题作为键,列的其余部分作为列表值。我想在不导入的情况下做到这一点。

我将如何转这个:

[
['col1', 'col2', 'col3', 'col4', 'col5'],
['1', 'a', 'd', 'g', 'j'],
['2', 'b', 'e', 'h', 'k'],
['3', 'c', 'f', 'I', 'l']
]

进入这个:

{
'col1': ['1', '2', '3'],
'col2': ['a', 'b', 'c'],
'col3': ['d', 'e', 'f'],
'col4': ['g', 'h', 'I'],
'col5': ['j', 'k', 'l']
}

谢谢。我也可以使用二维数组而不是初始列表?

标签: python-3.xlistdictionary

解决方案


根据您的列表,您可以使用内置的zip函数和一些语法糖来拆分数据:

data = [
['col1', 'col2', 'col3', 'col4', 'col5'],
['1', 'a', 'd', 'g', 'j'],
['2', 'b', 'e', 'h', 'k'],
['3', 'c', 'f', 'I', 'l']
]
transformed = {key: value for key, *value in zip(*data)}

{
'col1': ['1', '2', '3'], 
'col2': ['a', 'b', 'c'], 
'col3': ['d', 'e', 'f'], 
'col4': ['g', 'h', 'I'], 
'col5': ['j', 'k', 'l']
}

要在不导入适当的csv模块的情况下处理 CSV 文件,您最终将自己解析文本,实质上是重新实现现有的内置代码。


推荐阅读