<p>您可以为两个输入列表中的每一个构建<code>dict</code>,如下所示:</p>
<pre><code>dict_a = {
e['username']: e['userid']
for e in list_a}
dict_b = {
e['username']: e['userid']
for e in list_b}
</code></pre>
<hr/>
<p>然后构建一个新的<code>dict</code>组合来自以下两个方面的数据:</p>
<pre><code>dict_result = {}
for username, userid in dict_a.items():
if username not in dict_result:
dict_result[username] = {}
dict_result[username]['userid_one'] = userid
for username, userid in dict_b.items():
if username not in dict_result:
dict_result[username] = {}
dict_result[username]['userid_two'] = userid
</code></pre>
<p>这也可以缩短为:</p>
<pre><code>import collections
dict_result = collections.defaultdict(dict)
for label, d in [('one', dict_a), ('two', dict_b)]
for username, userid in d.items():
dict_result[username]['userid_{}'.format(label)] = userid
</code></pre>
<hr/>
<p>最后,如果您真的需要最终结果作为列表:</p>
<pre><code>list_result = []
for username, d in dict_result.items():
# 'd' already contains the other data, we just add the 'username'
d['username'] = username
list_result.append(d)
</code></pre>