擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools.chain" rel="noreferrer">^{<cd1>}</a>执行以下操作:</p>
<pre><code>>>> from itertools import chain
# timeit: ~3.40
>>> [dict(chain(*map(dict.items, d.values()))) for d in data]
[{'l': 'Apple',
'b': 'Milk',
'd': 'Meatball',
'favourite': 'coke',
'dislike': 'juice'},
{'l': 'Apple1',
'b': 'Milk1',
'dislike': 'juice3',
'favourite': 'coke2',
'd': 'Meatball2'}]
</code></pre>
<p>使用<code>chain</code>、<code>map</code>、<code>*</code>使这个表达式成为以下双重嵌套理解的简写,它实际上在我的系统(Python 3.5.2)上执行得更好,而且不会太长:</p>
<pre><code># timeit: ~2.04
[{k: v for x in d.values() for k, v in x.items()} for d in data]
# Or, not using items, but lookup by key
# timeit: ~1.67
[{k: x[k] for x in d.values() for k in x} for d in data]
</code></pre>
<h3>注:</h3>
<p><a href="https://stackoverflow.com/users/5238915/roadrunner">RoadRunner's</a>循环和更新方法在<code>timeit: ~1.37</code>方面优于这两种单行方法</p>