python获取list某个元素下标sortedlist
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)