Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 返回字符串的长度,直到指定的字符为止_Python_Python 3.x - Fatal编程技术网

Python 返回字符串的长度,直到指定的字符为止

Python 返回字符串的长度,直到指定的字符为止,python,python-3.x,Python,Python 3.x,我有一个字符串test=bcdefaghijklmnaopqrstuavasdfaweffw 我试图找到字符串的长度,直到它遇到第一个'a',即len(bcdef)=5 我想知道是否有一个简单的内置函数可以做到这一点 到目前为止,我拥有的是len(test.partition('a')[0]),但我想知道是否有更简单的方法来实现这一点 谢谢。len(test.partition('a')[0])确实很复杂,性能很差 如果字母不在字符串中,我会使用str.index和一个异常捕获,在这种情况下,函

我有一个字符串test=
bcdefaghijklmnaopqrstuavasdfaweffw

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

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

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

谢谢。

len(test.partition('a')[0])
确实很复杂,性能很差

如果字母不在字符串中,我会使用
str.index
和一个异常捕获,在这种情况下,函数可以返回
-1
(或者字符串的长度,这是一个惯例。
str.find
在未找到子字符串时返回
-1

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

替代方法:使用
s.find(“a”)
,它执行完全相同的操作,无需处理异常(未找到时返回
-1

您使用的是index+1

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


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

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

err
s.index(“a”)
给出了
a
的第一个位置。除非它不在字符串中…哈哈哈哈哈哈我忘了。。。感谢使用
s.find(“a”)
甚至更好在
ValueError
的情况下,我会得到
len
(“返回字符串的长度直到指定的字符”)是的,这是惯例问题<当子字符串不在列表中时,code>str.find返回
-1
。等待我们可以直接使用
str.find
s="bcdefaghijklmnaopqrstuavasdfawefafw"

def slen(s,c):
    try:
        return s.index(c)
    except ValueError:
        return -1  # could return len(s)
test = "bcdefaghijklmnaopqrstuavasdfawefafw"
len = test.index('a')+1