擅长:python、mysql、java
<p>只需使用<code>str.split()</code>和最后一个元素构建一个列表理解</p>
<pre><code>l = ['WKU D02807750\n', 'WKU D02807769\n', 'WKU D02807777\n', 'WKU D02807785\n']
print([x.split()[-1] for x in l])
</code></pre>
<p>请注意,linefeed被忽略,因为<code>split</code>是在没有参数的情况下调用的:根据1个或多个空格字符(制表符、空格、换行符…)进行拆分</p>
<p>结果:</p>
<pre><code>['D02807750', 'D02807769', 'D02807777', 'D02807785']
</code></pre>
<p>(使用regex这样做更复杂:<code>[re.split(" ",x)[-1].strip() for x in l]</code>,因为regex split不会删除空字段)</p>
<p>编辑:如果您想返回所有<em>但</em>第一项,则需要另一种技术。你可以<code>split()</code>然后<code>join()</code>:</p>
<pre><code>[" ".join(x.split()[1:]) for x in l]
</code></pre>
<p>或者限制<code>split</code>操作的数量(之后需要<code>strip</code>):</p>
<pre><code>[x.split(maxsplit=1)[-1].strip() for x in l]
</code></pre>
<p>或者可以使用<code>partition</code>根据找到的第一个空格进行拆分,然后使用<code>strip()</code>结果删除前导空格和尾随空格:</p>
<pre><code>[x.partition(" ")[2].strip() for x in l]
</code></pre>
<p>与<code>l = ['WKU D 02807750\n', 'WKU D 02807769\n', 'WKU D02807777\n', 'WKU D02807785\n']
</code>
你得到<code>['D 02807750', 'D 02807769', 'D02807777', 'D02807785']</code></p>