Python 返回字符串的长度,直到指定的字符为止
我有一个字符串test=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和一个异常捕获,在这种情况下,函
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。使用哪一个取决于您的用例。errs.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