擅长:python、mysql、java
<p>最简单的方法是:</p>
<pre><code>from itertools import chain
dicts = [{'x': 42}, {'x': 23, 'y': 5}]
keys = set(chain.from_iterable(dicts))
for item in dicts:
item.update({key: None for key in keys if key not in item})
</code></pre>
<p>给我们:</p>
^{pr2}$
<p>我们从所有字典中的所有键创建一个集合,然后循环使用<code>dict</code>更新它们没有的值。在</p>
<p>使用<code>itertools.chain.from_iterable()</code>的另一种方法是使用<code>reduce(or_, [dict.keys() for dict in dicts])</code>(在3.x中,是2.x中的<code>reduce()</code>和{<cd6>},尽管我觉得这不太可读。在</p>
<p>如果要创建新列表,而不是更新旧列表,只需将for循环替换为:</p>
^{3}$