返回字符串的长度直到指定的字符

时间:2018-03-26 12:43:01

标签: python python-3.x

我有一个test = bcdefaghijklmnaopqrstuavasdfawefafw

的字符串

我试图找到一个字符串的长度,直到它遇到第一个'a',即len(bcdef)= 5.

我想知道是否有一个简单的内置函数可以做到这一点?

到目前为止我所拥有的是len(test.partition('a')[0]),但我想知道是否有更简单的方法可以做到这一点。

感谢。

3 个答案:

答案 0 :(得分:2)

len(test.partition('a')[0])确实很复杂& underperformant。

我将str.index与异常捕获一起使用,以防字母不在字符串中,在这种情况下,函数可以返回-1例如(或者长度为字符串,它是一种惯例。str.find在找不到子字符串时返回-1

s="bcdefaghijklmnaopqrstuavasdfawefafw"

def slen(s,c):
    try:
        return s.index(c)
    except ValueError:
        return -1  # could return len(s)

str.index返回字符串中第一个出现的char / substring的位置,如果不存在则抛出异常)

替代方法:使用s.find("a"),它完全相同,没有处理异常的麻烦(当找不到时返回-1

答案 1 :(得分:2)

您可以使用str.index("a")str.find("a")

两者都返回角色第一次出现的索引。 它们之间的区别是index()如果找不到该字符则会引发错误。找不到字符时,find()返回-1。使用哪一个取决于您的用例。

答案 2 :(得分:0)

您使用索引+ 1

索引返回特定字符的索引(或字符串的长度,直到特定字符-1)

test = "bcdefaghijklmnaopqrstuavasdfawefafw"
len = test.index('a')+1