需求:統計列表list1中元素3的個數,并返回每個元素的索引
list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2]
在實際工程中,可能會遇到以上需求,統計元素個數使用list.count()方法即可,不做多余說明
返回每個元素的索引需要做一些轉換,簡單整理了幾個實現方法
1 list.index()方法
list.index()方法返回列表中首個元素的索引,當有重復元素時,可以通過更改index()方法__start參數來更改起始索引
找到一個元素后,將起始索引替換為該元素的下一個索引,繼續進行查找,直到找到所有的元素索引
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參數,指定起始索引
for i in range(0, count):
index = list1.index(3, index + 1)
index_list.append(index)
print(index_list)
結果如下:

2 通過索引遍歷原列表,對每一個元素進行判斷
通過索引遍歷原列表,對每一個元素進行判斷,如果元素是目標元素,則返回對應索引值,示例如下:
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)
結果同上
3 enumerate()函數和列表推導式
使用enumerate()函數返回可解析的index-value列表,然后使用列表推導式,同時使用if條件過濾得到目標值的索引,示例如下:
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)
結果同上
各位大佬有好的實現方法可以在下方評論分享一下
到此這篇關于Python 統計列表中重復元素的個數并返回其索引值的文章就介紹到這了,更多相關Python 統計列表元素內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python 統計數據集標簽的類別及數目操作
- Python統計可散列的對象之容器Counter詳解
- Python實戰之單詞打卡統計
- python之cur.fetchall與cur.fetchone提取數據并統計處理操作
- python自動統計zabbix系統監控覆蓋率的示例代碼
- python 統計代碼耗時的幾種方法分享
- Python統計列表元素出現次數的方法示例
- python統計RGB圖片某像素的個數案例
- Python jieba 中文分詞與詞頻統計的操作
- 利用Python3實現統計大量單詞中各字母出現的次數和頻率的方法
- 使用Python 統計文件夾內所有pdf頁數的小工具
- python 統計list中各個元素出現的次數的幾種方法
- python調用百度AI接口實現人流量統計
- Python代碼覆蓋率統計工具coverage.py用法詳解
- python 爬蟲基本使用——統計杭電oj題目正確率并排序
- 利用python匯總統計多張Excel
- python統計mysql數據量變化并調用接口告警的示例代碼
- 用python實現監控視頻人數統計