Python獲取list中指定元素索引的兩種方法小結
在平時開發(fā)過程中,經(jīng)常遇到需要在數(shù)據(jù)中獲取特定的元素的信息,如到達目的地最近的車站,櫥窗里面最貴的物品等等。怎么辦?看下面
方法一: 利用數(shù)組自身的特性 list.index(target), 其中a是你的目標list,target是你需要的下標對應的值
li = [10,8,9,26,72,6,28] print(li.index(8))
但是,如果a中有多個8呢?
我們發(fā)現(xiàn),這種方法僅僅能獲取都第一個匹配的value的下標(可以試試o_o)
所以,我們看看我們的第二種方案:
方法二: 利用enumerate函數(shù)。
>>> li = [10,8,9,26,72,6,28] >>> print (enumerate(li)) <enumerate object at 0x0000000002B9A990>
原來enumerate的輸出類型是enumerate object對象,所以,我們可以如下
>>> li [10, 8, 9, 26, 72, 6, 28] >>> print(list(enumerate(li))) [(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28)] >>> print([i for i,j in enumerate(li) if j == 8]) [1]
再看,如果a中有多個‘8’呢?
>>> li.append(8) >>> li.append(8) >>> li [10, 8, 9, 26, 72, 6, 28, 8, 8] >>> print(li.index(8)) 1 #學習中遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流群:531509025 >>> print(list(enumerate(li))) [(0, 10), (1, 8), (2, 9), (3, 26), (4, 72), (5, 6), (6, 28), (7, 8), (8, 8)] >>> print([i for i,j in enumerate(li) if j == 8]) [1, 7, 8]
可見,list的index()方法是在list中找到第一個匹配的值。
而enumerate是將list(當然,也包含其它類型)中的元素元組化,然后我們利用循環(huán)方法獲取相應的匹配的結果。所以方案二對于重復的數(shù)值能夠一個不漏的get出來。
到此這篇關于Python獲取list中指定元素索引的兩種方法小結的文章就介紹到這了,更多相關Python獲取list指定元素索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python史上最全種類數(shù)據(jù)庫操作方法分享
本文將詳細探討如何在Python中連接全種類數(shù)據(jù)庫以及實現(xiàn)相應的CRUD(創(chuàng)建,讀取,更新,刪除)操作,文中的示例代碼講解詳細,需要的可以參考一下2023-07-07caffe的python接口之手寫數(shù)字識別mnist實例
這篇文章主要為大家介紹了caffe的python接口之手寫數(shù)字識別mnist實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06python發(fā)送byte數(shù)據(jù)組到tcp的server問題
這篇文章主要介紹了python發(fā)送byte數(shù)據(jù)組到tcp的server問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09python將中文數(shù)字轉(zhuǎn)化成阿拉伯數(shù)字的簡單方法
這篇文章主要給大家介紹了關于python如何將中文數(shù)字轉(zhuǎn)化成阿拉伯數(shù)字的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03