获取Python的list中含有重复值的index方法通常可以通过以下两种方式实现:
1.使用循环遍历
可以使用循环遍历的方式,逐个判断list中的元素是否重复,如果重复,则将该元素的index加入到一个新的列表中。具体代码如下:
lst = [1, 2, 3, 4, 5, 2, 6, 7, 8, 2]
duplicates = []
for i in range(len(lst)):
if lst[i] in lst[i+1:]:
duplicates.append(i)
print(duplicates)
上述代码中,我们先创建了一个包含重复元素的list(lst),并创建了一个空列表(duplicates)来存放重复元素的index。然后,我们使用for循环遍历整个list,对于每个元素,我们检查是否存在于该元素之后的list中,如果存在,则将该元素的index添加到新列表中。最终,我们输出了包含重复元素的index的新列表。
2.使用numpy库
另一种更简单的方式是使用numpy库的unique函数。unique函数可以返回去重后的元素,以及其在原数组中的下标。具体代码如下:
import numpy as np
lst = [1, 2, 3, 4, 5, 2, 6, 7, 8, 2]
_, idx = np.unique(lst, return_index=True)
duplicates = np.setdiff1d(np.arange(len(lst)), idx)
print(duplicates)
上述代码中,我们先导入了numpy库,并创建了一个包含重复元素的list(lst)。然后,我们使用unique函数对list进行去重,并返回去重后的元素(使用下划线接收,表示我们不需要该返回值)以及元素在原数组中的下标(通过设置return_index参数位True实现)。最后,我们使用setdiff1d函数得到原数组中重复元素的index。值得注意的是,setdiff1d函数用于计算两个数组之间的差集,这里我们使用np.arange(len(lst))生成了一个等差数列,用于表示原数组中所有元素的index。最终,我们输出了包含重复元素的index的新列表。
总之,以上两种方式都可以实现获取list中含有重复值的index方法,其中第二种方式使用了numpy库提供的辅助函数,省去了手动循环的过程,更加简洁高效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:获取python的list中含有重复值的index方法 - Python技术站