擅长:python、mysql、java
<p>在纯Python中,只需构建一个顶级字典,如果仍然缺少,则使用<a href="https://docs.python.org/3/library/stdtypes.html#dict.setdefault" rel="nofollow noreferrer">^{<cd1>}</a>实现嵌套字典:</p>
<pre><code>result = {}
for outer, inner, value in data:
result.setdefault(outer, {})[inner] = value
</code></pre>
<p>这是对数据进行分组的最简单和更可读的方法。你知道吗</p>
<p>演示:</p>
<pre><code>>>> data = [
... ('di', 'c1', 'avg11'),
... ('di', 'c2', 'stdev12'),
... ('eng', 'c1', 'stdev21'),
... ('eng', 'c2', 'stdev22')
... ]
>>> result = {}
>>> for outer, inner, value in data:
... result.setdefault(outer, {})[inner] = value
...
>>> result
{'di': {'c1': 'avg11', 'c2': 'stdev12'}, 'eng': {'c1': 'stdev21', 'c2': 'stdev22'}}
</code></pre>
<p>如果<strong>之后必须有<code>data1</code>和<code>data2</code>变量,只需从<code>'di'</code>和<code>'eng'</code>键设置这些变量:</p>
<pre><code>data1 = result['di']
data2 = result['eng']
</code></pre>
<p>但如果您有更多或更少或不同的外键,这是相当不灵活的。你知道吗</p>