擅长:python、mysql、java
<p>使用内置方法的最简单方法</p>
<pre><code>d = 'COADREAD ATF7 Missense_Mutation NGXA-AZ-3984 P17544 A436T'
myid, token = d.rsplit(' ', 2)[1:] # will except if can't be unpacked so you know you've got exactly 2 elements...
token = token[1:-1]
</code></pre>
<p>如果你想在两个字母之间指定数字,你可以使用正则表达式。。。<code>re.match('[A-Z](\d{3})[A-Z]', token[1]) # or similar...</code></p>
<p><strong>澄清:</strong></p>
<p><code>d.rsplit(' ', 2)</code>-从返回<code>['COADREAD ATF7 Missense_Mutation NGXA-AZ-3984', 'P17544', 'A436T']
</code>的结尾开始拆分<code>' '</code>处的字符串。假设我们只查找最后2个元素,我们用一个切片删除第一个元素,这样我们得到<code>d.rsplit(' ', 2)[1:]</code>,它给出{<cd7>}。在</p>
<p>使用unpacking,我们命名变量,并通过使用<code>myid, token = d.rsplit(' ', 2)[1:]</code>来保证它的长度为2—如果它没有正好两个元素,赋值将失败。在</p>
<p>既然<code>myid</code>应该是您想要的id,您可以使用切片(slicing)<code>token = token[1:-1]</code>从令牌中删除第一个和最后一个字符。在</p>
<p>然后:</p>
^{pr2}$
<p><strong>关于查找的评论:</strong></p>
<p>解析文件行后查找:</p>
<pre><code>lookup = {}
for line in file:
# do steps above so you have myid, token
lookup[myid] = token
</code></pre>
<p>然后查找['P17544']将返回“436”</p>
<p>希望这更清楚。。。在</p>