在Python中使用csv.DictReader创建内存字典,标题为键,列为列表

0 投票
2 回答
994 浏览
提问于 2025-04-17 05:21

有什么优雅的方法可以使用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))

撰写回答