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)