python 獲取list某個元素下標


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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM