擅长:python、mysql、java
<p>由于列表A有一个一致的模式,这些模式应该可以很好地工作:</p>
<pre><code>C = ['dataFile'+b if 'dataFile'+b in A else b for b in B]
</code></pre>
<p>输出:</p>
<pre><code>>>> C
['dataFile2000', 'dataFile1999', '1998', '2005', 'dataFile2002', '2005']
</code></pre>
<p>或</p>
<pre><code>C = ['dataFile'+b if b in ''.join(A) else b for b in B]
</code></pre>
<p>输出:</p>
<pre><code>>>> C
['dataFile2000', 'dataFile1999', '1998', '2005', 'dataFile2002', '2005']
</code></pre>
<p><strong>编辑</strong></p>
<p>正如OP所提到的,列表A的前缀可以是一致的,因此:</p>
<pre><code>C = [i[0] for i in [[a for a in A if b in a] or [b] for b in B]]
</code></pre>
<p>输出:</p>
<pre><code>['dataFile2000', 'dataFile1999', '1998', '2005', 'dataFile2002', '2005']
</code></pre>