0

如果我有一个字符串

ex = 'aaatttgggatgaATG'

我想找到小写结束的索引

所以在这种情况下

indx_lower = 13

我将如何获得该价值?

我是否必须执行一个 for 循环,在其中检查字符串中每个元素的布尔值?

像这样 ?

total_indx = range(0,len(ex))

for p,k in zip(ex,total_indx):
    if upper print k ? 

是的,我不知道我会怎么做。. .

4

5 回答 5

3
next(i for i,j in enumerate(ex) if j.isupper()) - 1
于 2013-02-13T22:19:15.997 回答
2

最好的方法是不使用 for 循环:

>>> print re.search("[A-Z]", "aaatttgggatgaATG").start()
13

re.search()返回一个MatchObject对象,你可以通过调用它的start()方法来询问它从哪里开始。(但如果没有匹配,re.search()将返回None)。

于 2013-02-13T22:23:16.827 回答
1

你可以使用重新

import re

ex = 'aaatttgggatgaATG'

print ex.index(re.search('[A-Z]', ex).group())
于 2013-02-13T22:19:28.530 回答
0
for x in range(0, len(ex)):
    if ex[x].isupper():
        print x
        break
于 2013-02-13T22:21:55.897 回答
0
>>> import re
>>> ex = 'aaatttgggatgaATG'
>>> re.search("[A-Z]", ex).start()
13
于 2013-02-13T22:23:21.883 回答