擅长:python、mysql、java
<p>您的问题目前不明确:</p>
<ul>
<li>如何处理l2中不存在的l1元素?我假定你不理他们</li>
<li>如何处理l1中不存在的l2元素?我假定你不理他们</li>
<li>如果来自l1的应用程序id在l2中出现多次,该怎么办?我将假设使用任何一个,并将使用最后一个</li>
</ul>
<p>搜索dict通常比迭代列表快,因此我将构建一个辅助映射<code>app_id</code>=>^从l2生成{<cd2>},并构建只包含{<cd5>}中存在的<code>app_id</code>的<code>l1</code>副本,然后从辅助映射中追加名称:</p>
<pre><code>aux = {it['app_id']: it['name'] for it in l2}
l3 = [it.copy() for it in l1 if it['app_id'] in aux]
for it in l3:
it['name'] = aux[it['app_id']]
</code></pre>
<p>它给出for <code>l3</code>:<code>[{'app_id': 9833, 'state': 0, 'name': 'ABC'}, {'app_id': 1036, 'state': 1, 'name': 'CDE'}, {'app_id': 1039, 'state': 0, 'name': 'XYZ'}, {'app_id': 1030, 'state': 0, 'name': 'JKL'}]</code>,而不需要嵌套循环</p>