我有一个CSV文件,如下所示:
compound, x1data,y1data,x2data,y2data
a,1,2,3,4
a,9,10,11,12
b,5,6,7,8
b,4,5,6,7
我想创建一个列表字典,其中复合词是键,对于每个复合词,我得到一个x1data、y1data、x2data和y2data的列表。你知道吗
我相信会是这样的:
my_dict = {
'a': {'x1data':[1,9],'y1data':[2,10],'x2data':[3,11],'y2data':[4,12]},
'b':{'x1data':[5,4],'y1data':[6,5],'x2data':[7,6],'y2data':[8,7]}
}
最后,我要为每种化合物绘制x1data vs y1data和x2data vs y2data。你知道吗
我试过这样做,它正确地生成了一个字典,其中键是复合词,但它没有给我一个值列表(只是csv中的最后一个值)。你知道吗
my_dict = {}
with open(filename, 'r') as infile:
reader = csv.DictReader(infile)
for row in reader:
key = row.pop('compound')
my_dict[key] = row
这里有一种不用任何库的方法。你知道吗
给你:
您可以使用
itertools.groupby
:输出:
您可以使用标准库中的
collections.defaultdict
。你知道吗严格来说,你在这里得到的不是
dict
。不过,你也可以用同样的方法。你知道吗如果你想打印的话,需要更多的参与:
这将提供:
相关问题 更多 >
编程相关推荐