一、求列表中某个元素的下标
def findindex(org, x, pos=-1): counts = org.count(x) #先求出org中包含x的个数 if counts == 0: #个数为0,说明不存在x print(org, '中没有', x) elif counts == 1: #个数为1,说明结果唯一,直接返回index(x) print(org.index(x)) else: ''' 个数大于1时,从下标为0的位置开始查找 找到一个后,先打印下标位置,再从该位置的下一个位置开始继续查找 ''' for i in range(counts): pos = org.index(x, pos + 1) print(pos,end=' ') print() org = [1, 2, 2, 33, 2, 4, 5, 2] findindex(org, 3) findindex(org, 2) findindex(org, 1)
查看结果:
[1, 2, 2, 33, 2, 4, 5, 2] 中没有 3
1 2 4 7
0
二、通过enumerate()使程序更简洁
def findindex(org, x): result = [] for k,v in enumerate(org): #k和v分别表示org中的下标和该下标对应的元素 if v == x: result.append(k) return result org = [1, 2, 2, 33, 2, 4, 5, 2] print(findindex(org, 3)) print(findindex(org, 2)) print(findindex(org, 1))