如何在数组中找到重复元素的索引?
mylist = [1,2,3,4,5,6,7,8,9,10,1,2]如何在这里找到1和2个重复数组元素的索引数?因此,不是第一个重复元素,我想从数组中查找并删除拖尾重复元素。最后为12值。谢谢你的答复。
发布于 2022-08-08 16:12:55
单程移除副本:
mylist = [1,2,3,4,5,6,7,8,9,10,1,2]
def remove_duplicates(l):
seen = {}
res = []
for item in l:
if item not in seen:
seen[item] = 1
res.append(item)
return res
print(remove_duplicates(mylist))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]这也保留了秩序:
mylist = [1,10,3,4,5,6,7,8,9,2,1,2]
print(remove_duplicates(mylist))
[1, 10, 3, 4, 5, 6, 7, 8, 9, 2]发布于 2022-08-08 16:04:07
要做到这一点,最简单的方法(除非您想要记录副本的位置)是将列表转换为set。
set只能包含每个值的一个实例。
您可以很容易地做到这一点,如下所示。
注意:集合被重新表示为大括号{,就像字典一样,但是没有键值对。
mylist = [1,2,3,4,5,6,7,8,9,10,1,2]
myset = set(mylist)
// myset = {1,2,3,4,5,6,7,8,9,10}编辑:如果订单很重要,此方法将不作为一个集合来存储订单。
发布于 2022-08-08 16:28:13
您可以在一个周期中找到重复项,在一个集合中记住以前看到的值。
mylist = [1,2,3,4,5,6,7,8,9,10,1,2]
myset = set()
indices_of_duplicates = []
for ind, val in enumerate(mylist):
if val in myset:
indices_of_duplicates.append(ind)
else:
myset.add(val)然后,您可以用
for ind in reversed(indices_of_duplicates):
del mylist[ind]请注意,我们正在删除从列表末尾开始的元素,因为否则我们将转移元素,并且必须更新我们找到的索引。
https://stackoverflow.com/questions/73280871
复制相似问题