描述
从列表中找出某个值第一个匹配项的索引位置
返回的是查找对象的索引位置,如果没有,就会抛出异常
语法
List.index(a, start, end)
参数解释
a | 要查找的对象(必填) |
start | 要查找的范围的开始位置索引(闭区间)(非必填) |
end | 要查找的范围的结束位置索引(开区间)(有end就必须有start,有start时可以没end) |
举个栗子
栗子-01
不设置start和end,在整个数组中查找
代码
s = [1, 123, 'tiger', '狮子', 8, -9, '8', 8, 'lucy刘', 3.990, '张==', '冷吗?']
res1 = s.index(-9) # 负数
res2 = s.index('8') # 数据类型为字符的数字
res3 = s.index(8) # 数组中有两个符合条件的对象
res4 = s.index(3.99) # 数字,要求其数值是相等的即可
res5 = s.index('冷吗?') # 完全字符(符号也要区分中英文,不然查询不到,就会报错异常)
print(
res1,
res2,
res3,
res4,
res5,
)
运行结果
5 6 4 9 11
栗子02
设置start和end,限制查找范围
注意:查找范围虽改变了,但其返回的索引下标还是按照原本的整个数组来排列的,例如下面的res2
s = [1, 123, 'tiger', '狮子', 8, -9, '8', 8, 'lucy刘', 3.990, '张==', '冷吗?']
res1 = s.index(-9, 2, 9) # 并非整个数组都是查找范围
res2 = s.index('8', 0, 11) # 整个数组都是查找范围
res3 = s.index(8, 5, 11) # 查找范围从第二个匹配项开始
res4 = s.index(3.99, 3) # 只设置start,end默认为数组结尾(不可以只设置end,语法不允许)
print(
res1,
res2,
res3,
res4,
)
代码
5 6 7 9
运行结果
栗子03
要查找的对象不存在
代码
s = [1, 123, 'tiger', '狮子', 8, -9, '8', 8, 'lucy刘', 3.990, '张==', '冷吗?']
res1 = s.index(-9, 0, 5) # 要查找的对象并未在查找范围内(start闭区间end开区间)
print(
res1,
)
运行结果
Traceback (most recent call last):
File "巴拉巴拉巴拉巴拉文件路径马赛克", line 3, in <module>
res1 = s.index(-9, 0, 3) # 并非整个数组都是查找范围
ValueError: -9 is not in list