Python统计列表中重复元素的个数并返回其索引值的实现
⽅法
需求:统计列表list1中元素3的个数,并返回每个元素的索引
list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2]
在实际⼯程中,可能会遇到以上需求,统计元素个数使⽤unt()⽅法即可,不做多余说明
返回每个元素的索引需要做⼀些转换,简单整理了⼏个实现⽅法
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 = unt(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]
python index函数index_list = [a for a, b in enumerate(list1) if b == 3]
print(index_list)
结果同上
各位⼤佬有好的实现⽅法可以在下⽅评论分享⼀下
到此这篇关于Python 统计列表中重复元素的个数并返回其索引值的⽂章就介绍到这了,更多相关Python 统计列表元素内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!