【问题标题】:For string with lower then UPPER . Give position when UPPER starts . Python对于低于 UPPER 的字符串。 UPPER 启动时给出位置。 Python
【发布时间】:2013-01-29 15:08:54
【问题描述】:

如果我有一个字符串

ex = 'aaatttgggatgaATG'

我想找到小写结束的索引

所以在这种情况下它会是

indx_lower = 13

我将如何获得该值?

我是否必须做一个 for 循环来检查字符串中每个元素的布尔值?

喜欢这样吗?

total_indx = range(0,len(ex))

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

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

【问题讨论】:

标签: python for-loop boolean uppercase lowercase


【解决方案1】:
next(i for i,j in enumerate(ex) if j.isupper()) - 1

【讨论】:

    【解决方案2】:

    你可以使用re

    import re
    
    ex = 'aaatttgggatgaATG'
    
    print ex.index(re.search('[A-Z]', ex).group())
    

    【讨论】:

    • 最后的's'是什么?
    • 对不起,那是字符串,但我把它改成了'ex'
    【解决方案3】:
    for x in range(0, len(ex)):
        if ex[x].isupper():
            print x
            break
    

    【讨论】:

    • enumerate 会比 range 这里更惯用。
    【解决方案4】:

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

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

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

    【讨论】:

      【解决方案5】:
      >>> import re
      >>> ex = 'aaatttgggatgaATG'
      >>> re.search("[A-Z]", ex).start()
      13
      

      【讨论】:

        猜你喜欢
        • 2016-05-22
        • 1970-01-01
        • 1970-01-01
        • 2022-10-05
        • 2013-04-23
        • 2013-03-30
        • 2014-07-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多