python list找出一个元素的位置(重复元素怎么分别找出位置)

如题所述

使用list的index方法可以找到list中第一次出现该元素的位置

>>> l = ['a','b','c','c','d','c']
>>> find='b'
>>> l.index(find)
1

找出出现该元素的所有位置可以使用一个简单的表理解来实现

>>> find = 'c'
>>> [i for i,v in enumerate(l) if v==find]
[2, 3, 5]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-15
几种方式的回答:
1)
print('*'*15,'想找出里面有重复数据的索引值','*'*15)
listA = [100, 94, 88, 82, 76, 70, 64, 58, 52, 46, 40, 34,76]
print('列表中第1次出现的位置 = ',listA.index(76))
2)
a_list = ['a','b','c','c','d','c']
find = 'c'
print('重复元素出现的位置索引分别是 = ',[i for i,v in enumerate(a_list) if v==find])
-----------------------------------------------------
3)### 求某个元素重复的索引值,函数方式表述如下:
a_list = ['a','b','c','c','d','c']
def unique_index(L,f):
"""L表示列表, i表示索引值,v表示values,f表示要查找的元素 """
return [i for (i,v) in enumerate(L) if v==f]
print('索引值 = ',unique_index(a_list,'c'))

运行结果:
索引值 = [2, 3, 5]

4)还缺一种,列出多个元素重复的索引值,以后再补充
......
第2个回答  推荐于2017-11-26
def unique_index(L, e):
return [j for (i, j) in enumerate(L) if i == e]

这样就可以了。enumerate是将可迭代的对象与对应的索引一起进行迭代的函数,其实蛮实用的。本回答被提问者采纳
第3个回答  2015-06-19
看看在卡纳可能