#这里重复查找的目标为2,indexes为所有目标的结果
lis = [1,0,3,4,5,2,9,2,2,7,6,2]
indexes = []
obj = 2#查找重复值的目标对象
#python list.index默认查找的元素为从左向右第一个位置的index
#因此只要避免重复查找即可
#由于index是序列,具有唯一性,因此只需要判断上一次查找的元素的index是否在indexes里面
#如果在,就改变start开始位置的值
start = 0
#注意:list.inde用法 list.index(obj_num,start,stop)
#while循环中的print()为测试过程,可自行删去
while True:
if len(indexes) == 0:
try:#异常处理:当list.index查找不到目标的时候会报错,因此直接推出查找即可
# print('try flag1')
indexes.append(lis.index(2,start))
# print('lis.index(_value=)',lis.index(2))
start = lis.index(2) + 1#下一个位置
# print(start)
except:
break #说明没有要查找的这个值,查找结束
else:
try:
indexes.append(lis.index(2,start))#如果index方法报错,说明已经查找结束
#list.index方法原理同上,使用异常处理退出循环
start = lis.index(2,start)+1 #下一个位置
except:
break
print(indexes)
下面是运行结果