繁体   English   中英

Python string.find()给出错误“切片索引必须为整数或无,或具有__index__方法”

[英]Python string.find() giving error “slice indices must be integers or None or have an __index__ method”

我正在尝试在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都是简单的字符串。

什么是string

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

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

您可能想要的是:

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

但最好使用in简单的字符串检查:

if drug in row[1]:

尝试使用row[1].find(drug)代替string.find(row[1], drug) row[1].find(drug) .find()方法将为您提供字符串首次出现的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM