擅长:python、mysql、java
<p>您可以使用标准库中的<code>collections.defaultdict</code>。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>from collections import defaultdict as dd
import csv
my_dict = dd(lambda: dd(list))
with open("test.csv", 'r') as f:
reader = csv.DictReader(f)
for row in reader:
for key in reader.fieldnames[1:]:
my_dict[row.get("compound")][key].append(row[key])
</code></pre>
<p>严格来说,你在这里得到的不是<code>dict</code>。不过,你也可以用同样的方法。你知道吗</p>
<p>如果你想打印的话,需要更多的参与:</p>
<pre class="lang-py prettyprint-override"><code>from pprint import pprint
# ...
pprint({k: dict(v) for k, v in dict(my_dict).items()})
</code></pre>
<p>这将提供:</p>
<pre class="lang-py prettyprint-override"><code>{'a': {'x1data': ['1', '9'],
'x2data': ['3', '11'],
'y1data': ['2', '10'],
'y2data': ['4', '12']},
'b': {'x1data': ['5', '4'],
'x2data': ['7', '6'],
'y1data': ['6', '5'],
'y2data': ['8', '7']}}
</code></pre>