index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
1 list.index(x, start, end)
2 #start end 指示搜索的起始和结尾位置,缺省为整个数组
- x-- 查找的对象。
- start-- 可选,查找的起始位置。
- end-- 可选,查找的结束位置。
如果 list 存储了若干复杂结构的值,比如这样的一个列表:
temp = [('a', 1, 1.5), ('b', 2, 5.1), ('c', 9, 4.3)]
你想找到其中是 ('b', XX, XX) 这样的元素,其中 XX 可以为任意值。这种情况无法通过 index 函数来获得,我们可以利用 sort 的 key 参数来实现。
list.sort(或者 sorted 函数)有一个 key 参数,你可以提供一个函数来作为排序的依据。此时我们可以传入以下值:
temp.sort(key = lambda x:x[0]!='b')
随后我们会发现,所有形如 ('b', XX, XX) 的元素全部浮动到了列表的头部,此时我们访问 temp[0] 就可以获得想要查找的值了。
我们也可以写一个简单的函数:
findindex = lambda self,i,value:sorted(self,key=lambda x:x[i]!=value)[0]
那我们只需要这样调用:
>>> findindex(temp,0,'b')
就会返回它找到的第一个值:
>>> ('b',2)