在Python中使用csv.DictReader创建内存字典,标题为键,列为列表
有什么优雅的方法可以使用csv.DictReader来创建一个字典,这个字典在内存中存储着CSV文件的表头作为键,而每一列的数据作为列表?就像这样:
假设CSV文件内容如下:
key1 key2 key3
1 6 9
2 7 10
3 8 11
那么最终得到的字典将会是:
{'key1': [1,2,3],'key2': [6, 7, 8], 'key3': [9, 10, 11]}
2 个回答
0
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序做一些事情,比如处理数据或者执行特定的任务。为了让程序能够理解我们的指令,我们通常会使用一些代码。这些代码就像是给程序下达的命令,让它知道该做什么。
有些时候,程序在运行时可能会遇到问题,比如找不到某个文件或者出现了错误。这时候,程序就会给我们一些提示,告诉我们哪里出了问题。我们需要根据这些提示去修正代码,让程序能够顺利运行。
在编写代码时,保持代码的整洁和清晰是非常重要的。这样不仅方便自己理解,也能让其他人更容易阅读和维护代码。
总之,编程就像是在和计算机沟通,我们需要用简单明了的语言来表达我们的想法,让计算机能够理解并执行我们的指令。
from collections import defaultdict
d=defaultdict(list)
for line in reader:
for key, value in line.items():
d[key].append(value)
1
你的数据格式不太适合用 csv
来解析。不过,你可以自己手动把每一行分开:
with open(filename,'r') as f:
keys=next(f).split()
data=[row.split() for row in f]
columns=map(list,zip(*data))
result=dict(zip(keys,columns))