这一直很烦人;-)与一个答案相反,关于字符串,-1没有什么特别的;例如,
>>> "abc"[-1]
'c'
>>> [2, 3, 42][-1]
42
find()
实际上存在的问题是,-1实际上 特殊的索引。因此find()
,当未找到要搜索的内容时,使用代码容易感到惊讶- 甚至在发布Python 1.0.0之前就注意到,此类代码经常会继续执行错误的操作。
当index()
使用时,不会出现这样的意外- 不能默默地忽略异常。但是,设置try/except
这种简单的操作不仅令人烦恼,而且还增加了“应该”进行快速操作的大量开销(额外时间)。因此,string.find()
是在Python 0.9.9中添加的(在此之前,只能string.index()
使用)。
因此,我们两者兼有,并且甚至在Python 3中也可以使用。