擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>flist = []
for item in baselist:
for i in mainlist:
if i[0][0] ==item[0]:
flist.append(max(i, key=lambda x:x[2]))
</code></pre>
<p><code>flist</code>将是:</p>
<pre><code>[['RD-2', 'c', 127], ['RD-3', 'b', 140], ['RD-5', 'a', 120]]
</code></pre>
<p>也可以使用<code>itertools.product</code>来简化<code>for</code>循环:</p>
<pre><code>from itertools import product
flist = []
for i, item in product(mainlist,baselist):
if i[0][0] ==item[0]:
flist.append(max(i, key=lambda x:x[2]))
</code></pre>
<p>或者仅仅在一行中:</p>
<pre><code>flist = [max(i, key=lambda x:x[2]) for i, item in product(mainlist,baselist) if i[0][0] == item[0]]
</code></pre>