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找出一个元素的位置(重复元素怎么分别找出位置)的主要内容,如果未能解决你的问题,请参考以下文章