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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]

参考技术A 几种方式的回答:
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)还缺一种,列出多个元素重复的索引值,以后再补充
......
参考技术B def unique_index(L, e):
return [j for (i, j) in enumerate(L) if i == e]

这样就可以了。enumerate是将可迭代的对象与对应的索引一起进行迭代的函数,其实蛮实用的。本回答被提问者采纳
参考技术C 看看在卡纳可能

找出数组中非重复元素的下标

导读

如何来快速找到,数组中非重复元素的下标,我们取元素第一次出现位置的下标,下面介绍几种方法来实现这个功能

  • 通过list和set来实现
import numpy as np

a = np.array([0,0,0,2,2,2,1,1,1])
item_set = set(a.tolist())#获取所有没有重复的元素
#通过index来寻找下标
res_index = [a.tolist().index(i) for i in item_set]
print(res_index)
  • 通过where函数来实现
import numpy as np

a = np.array([[0,1,2,3],[3,2,1,4]])
#获取数组中不相等的元素
set_a = set(a.flatten().tolist())
#获取元素第一次出现时的下标索引
for item in set_a:
    row_indexs,col_indexs = np.where(a == item)
    print(row_indexs[0],col_indexs[0])
    """
    0 0
    0 1
    0 2
    0 3
    1 3
    """

用argwhere也可以实现

  • 通过nonzero实现
import numpy as np

t = np.array([1, 1, 1, 2, 2, 3, 8, 3, 8, 8])
print(np.nonzero(t == 8))#(array([6, 8, 9]),)
print(np.nonzero(t == 8)[0][0])#6
#对数组前后两个元素是否相等,不相等时返回下标
#如果用这个方法来找第一个元素出现的位置时,需要先对数组进行排序
print(np.nonzero(np.r_[1, np.diff(t)[:-1]]))#(array([0, 3, 5, 6, 7, 8]),)

以上是关于python list找出一个元素的位置(重复元素怎么分别找出位置)的主要内容,如果未能解决你的问题,请参考以下文章

如何找出 python list 中有重复的项

怎么查找python列表中元素的位置

python中列表增加元素的方法

python list 怎么查出一个元素的所有位置

找出数组中非重复元素的下标

python怎么获取list的某个元素的位置