Python 字符串查找函数 string.find() 出现错误 "切片索引必须是整数、无或具有 __index__ 方法"

2024-04-24 08:17:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中做一个简单的子字符串匹配,虽然我记得昨晚它工作得很好,但是从早上开始这段代码给出了以下错误。这似乎是一个已知的错误,有人能告诉我为什么会发生吗?

if string.find(row[1],drug) != -1:
    print "abstract id =  ", row[0],"Drug found=", drug

错误:

File "./substring.py", line 31, in <module>
    if string.find(row[1],drug) != -1:
TypeError: slice indices must be integers or None or have an __index__ method

这里row[1]drug都是简单的字符串。


Tags: or字符串代码abstractidstringif错误
2条回答

什么是string

如果它是模块string,这将起作用。

如果它是一个字符串对象(错误表明是这种情况),那么第二个参数是它应该开始搜索的位置。位置必须是整数或None或具有__index__方法的对象。drug是一个字符串,因此您会得到一个错误。

你可能想要的是:

if row[1].find(drug) != -1:

但是对于简单的子字符串检查,最好使用in

if drug in row[1]:

与其string.find(row[1], drug),不如尝试row[1].find(drug).find()方法将为字符串的第一个匹配项提供索引。

相关问题 更多 >