<p>您可以定义一个单独的方法来获取列表中所有列表的第2个和第1个元素之间的所有差异的总和,然后使用“dictionary conservation”生成<code>result</code>:</p>
<pre><code>def diff_sums(l):
return sum(x[2] - x[1] for x in l)
dictex = {'cat': {'a': [[1, 3, 5], [2, 2, 7]], 'b': [[1, 3, 7], [2, 2, 7]], 'c': [[1, 2, 7], [2, 2, 7]]},
'dog': {'a': [[1, 2, 5], [2, 2, 7]], 'b': [[1, 2, 7], [2, 2, 7]], 'c': [[1, 3, 7], [2, 2, 7]]},
'moose': {'a': [[1, 1, 5], [2, 2, 7]], 'b': [[1, 1, 7], [2, 2, 7]], 'c': [[1, 1, 7], [2, 2, 7]]}}
result = {animal: {k: diff_sums(v) for k, v in num_lists.items()} for animal, num_lists in dictex.items()}
print(result)
</code></pre>
<p><strong>输出</strong></p>
<pre><code>{'cat': {'a': 7, 'b': 9, 'c': 10},
'dog': {'a': 8, 'b': 10, 'c': 9},
'moose': {'a': 9, 'b': 11, 'c': 11}}
</code></pre>
<hr/>
<p>要将其写入CSV文件,可以使用<a href="https://docs.python.org/3/library/csv.html#csv.writer" rel="nofollow noreferrer">^{<cd2>}</a>模块:</p>
<pre><code>import csv
columns = ['animal', 'a', 'b', 'c']
data = [[animal] + [v[c] for c in columns[1:]] for animal, v in result.items()]
with open('mydata.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
for line in [columns] + data:
writer.writerow(line)
</code></pre>
<p><strong>输出</strong></p>
<pre><code>animal,a,b,c
cat,7,9,10
dog,8,10,9
moose,9,11,11
</code></pre>