Python 統(tǒng)計列表中重復(fù)元素的個數(shù)并返回其索引值的實現(xiàn)方法
需求:統(tǒng)計列表list1中元素3的個數(shù),并返回每個元素的索引
list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2]
在實際工程中,可能會遇到以上需求,統(tǒng)計元素個數(shù)使用list.count()方法即可,不做多余說明
返回每個元素的索引需要做一些轉(zhuǎn)換,簡單整理了幾個實現(xiàn)方法
1 list.index()方法list.index()方法返回列表中首個元素的索引,當(dāng)有重復(fù)元素時,可以通過更改index()方法__start參數(shù)來更改起始索引
找到一個元素后,將起始索引替換為該元素的下一個索引,繼續(xù)進(jìn)行查找,直到找到所有的元素索引
list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2]count = list1.count(3)index_list = []index = -1# 通過list.index()方法的__start參數(shù),指定起始索引for i in range(0, count): index = list1.index(3, index + 1) index_list.append(index)print(index_list)
結(jié)果如下:
通過索引遍歷原列表,對每一個元素進(jìn)行判斷,如果元素是目標(biāo)元素,則返回對應(yīng)索引值,示例如下:
list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2]list1_len = len(list1)index_list = []for i in range(0, list1_len): if list1[i] == 3:index_list.append(i)print(index_list)
結(jié)果同上
3 enumerate()函數(shù)和列表推導(dǎo)式使用enumerate()函數(shù)返回可解析的index-value列表,然后使用列表推導(dǎo)式,同時使用if條件過濾得到目標(biāo)值的索引,示例如下:
list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2]index_list = [a for a, b in enumerate(list1) if b == 3]print(index_list)
結(jié)果同上
各位大佬有好的實現(xiàn)方法可以在下方評論分享一下
到此這篇關(guān)于Python 統(tǒng)計列表中重復(fù)元素的個數(shù)并返回其索引值的文章就介紹到這了,更多相關(guān)Python 統(tǒng)計列表元素內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)2. chat.asp聊天程序的編寫方法3. 告別AJAX實現(xiàn)無刷新提交表單4. html小技巧之td,div標(biāo)簽里內(nèi)容不換行5. jsp文件下載功能實現(xiàn)代碼6. XHTML 1.0:標(biāo)記新的開端7. CSS3中Transition屬性詳解以及示例分享8. 怎樣才能用js生成xmldom對象,并且在firefox中也實現(xiàn)xml數(shù)據(jù)島?9. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享10. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera
