首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除列表中的重复项

删除列表中的重复项
EN

Stack Overflow用户
提问于 2011-11-01 08:45:24
回答 39查看 1.9M关注 0票数 1.2K

我几乎需要编写一个程序来检查列表是否有重复项,如果有,它会删除它们,并返回一个新的列表,其中包含未被复制/删除的项。这就是我所拥有的,但老实说,我不知道该怎么办。

def remove_duplicates():
    t = ['a', 'b', 'c', 'd']
    t2 = ['a', 'c', 'd']
    for t in t2:
        t.append(t.remove())
    return t
EN

回答 39

Stack Overflow用户

发布于 2011-11-01 08:49:33

这只是一句话:list(set(source_list))会做到这一点。

set是不可能有重复项的东西。

更新:一种保持顺序的方法是两行:

from collections import OrderedDict
OrderedDict((x, True) for x in source_list).keys()

在这里,我们使用的事实是,OrderedDict记住键的插入顺序,并且在更新特定键处的值时不会更改它。我们插入True作为值,但是我们可以插入任何东西,值就是不用。(set的工作方式也非常类似于忽略了值的dict。)

票数 205
EN

Stack Overflow用户

发布于 2013-05-14 20:39:55

>>> t = [1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> t
[1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> s = []
>>> for i in t:
       if i not in s:
          s.append(i)
>>> s
[1, 2, 3, 5, 6, 7, 8]
票数 108
EN

Stack Overflow用户

发布于 2011-11-01 08:49:09

如果您不关心顺序,只需执行以下操作:

def remove_duplicates(l):
    return list(set(l))

保证set不会有重复项。

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

https://stackoverflow.com/questions/7961363

复制
相关文章

相似问题

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