擅长:python、mysql、java
<p>这里不需要正则表达式。只需使用isinstance()和切片即可</p>
<p>这应该是你想要的:</p>
<pre><code>a_list = ['john','doe','1','90']
for i, elem in enumerate(a_list):
try:
elem = int(elem)
except ValueError, e:
pass
if isinstance(elem, int):
names_part = a_list[:i-1]
id_and_score = a_list[i-1:]
print 'name(s): {0}, '.format(' '.join(names_part)), 'id: {id}, score: {score}'.format(id=id_and_score[0], score=id_and_score[1])
</code></pre>
<p>不过,如果我们知道您的数据来源,或者如果有一种方法来预测字段位置,那么这个解决方案可能会有所改进—您可以按照建议将列表转换为dict。如果你提取了你的数据,你可以考虑建立一个dict而不是一个列表,这样你就不用做上面的事情了</p>