首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python列表中找到重复元素

如何在Python列表中找到重复元素
EN

Stack Overflow用户
提问于 2022-08-08 16:00:13
回答 4查看 630关注 0票数 -1

如何在数组中找到重复元素的索引?

代码语言:javascript
复制
mylist = [1,2,3,4,5,6,7,8,9,10,1,2]

如何在这里找到1和2个重复数组元素的索引数?因此,不是第一个重复元素,我想从数组中查找并删除拖尾重复元素。最后为12值。谢谢你的答复。

EN

回答 4

Stack Overflow用户

发布于 2022-08-08 16:12:55

单程移除副本:

代码语言:javascript
复制
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]

这也保留了秩序:

代码语言:javascript
复制
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]
票数 1
EN

Stack Overflow用户

发布于 2022-08-08 16:04:07

要做到这一点,最简单的方法(除非您想要记录副本的位置)是将列表转换为set

set只能包含每个值的一个实例。

您可以很容易地做到这一点,如下所示。

注意:集合被重新表示为大括号{,就像字典一样,但是没有键值对。

代码语言:javascript
复制
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}

编辑:如果订单很重要,此方法将不作为一个集合来存储订单。

票数 0
EN

Stack Overflow用户

发布于 2022-08-08 16:28:13

您可以在一个周期中找到重复项,在一个集合中记住以前看到的值。

代码语言:javascript
复制
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)

然后,您可以用

代码语言:javascript
复制
for ind in reversed(indices_of_duplicates):
    del mylist[ind]

请注意,我们正在删除从列表末尾开始的元素,因为否则我们将转移元素,并且必须更新我们找到的索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73280871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档