擅长:python、mysql、java
<p>您的解决方案适用于列表中的前两个元素,但随后<code>dict1</code>和<code>dict2</code>被缩减为一个集合,该集合作为<code>x</code>放入lambda中。所以现在<code>x</code>不再有方法<code>keys()</code>。</p>
<p>解决方案是从一开始就让x成为一个集合,方法是用一个空集合(恰好是union的中性元素)初始化reduction。</p>
<p>用初始化器试试:</p>
<pre><code>allkey = reduce(lambda x, y: x.union(y.keys()), alldict, set())
</code></pre>
<p>没有lambdas的另一种选择是:</p>
<pre><code>allkey = reduce(set.union, map(set, map(dict.keys, alldict)))
</code></pre>