擅长:python、mysql、java
<p>您可以使用<code>defaultdict</code>通过<code>name</code>将所有词典分组在一起:</p>
<pre><code>from collections import defaultdict
d = defaultdict(list)
for lst in (dict1.values(), dict2.values(), dict3.values()):
for sublst in lst:
for dic in sublst:
d[dic["name"].strip()].append(dic)
</code></pre>
<p>然后使用<code>min()</code>选择具有最小<code>id</code>值的词典。这仍然适用于需求,因为它仍然选择一个字典并匹配请求的输出</p>
<pre><code>from operator import itemgetter
result = {'field': [min(x, key=itemgetter('id')) for x in d.values()]}
print(result)
</code></pre>
<p>输出:</p>
<pre><code>{'field': [{'name': 'app1', 'id': 30}, {'name': 'app2', 'id': 82}, {'name': 'yest app', 'id': 17}, {'name': 'abc jam app', 'id': 6098}, {'name': 'availabla2z', 'id': 6667}]}
</code></pre>