【问题标题】:remove duplicate list elements删除重复的列表元素
【发布时间】:2021-02-17 00:28:07
【问题描述】:

我只想在一个元素重复多次时删除列表中的重复元素,如下所示:

li = ['Human','Human','Human'] => li = ['Human']

但当有两个或更多不同的元素时:

li = ['Human','Monkey','Human', 'Human']

【问题讨论】:

  • 这不就是set 吗?你为什么不用一套?
  • @S.Lott:我也犯了这个错误,但请阅读第二行.. ^^
  • @S.洛特。因为如果列表中只有一个不同的值,他只希望删除重复项。订购也可能是一个问题。
  • 那个答案消失在哪里了?我以为那是正确的? o.O

标签: python


【解决方案1】:

您可以使用以下设置轻松完成:

li = list(set(li))

【讨论】:

    【解决方案2】:
    def clean(lst):
        if lst.count(lst[0]) == len(lst):
            return [lst[0]]
        else:
            return lst
    

    这样做是你想要的吗?

    如果是这样,那么你也可以做到这一点

    def clean_in_place(lst):
        if lst.count(lst[0]) == len(lst):
            lst[:] = [lst[0]]
    

    【讨论】:

    • 效果很好!顺便说一句,如果连续元素相同,您如何清理重复项,例如 ['a','a','a','b','a','a'] 到 ['a','b', 'a']
    【解决方案3】:
    lst = ['Human','Human','Human'] => lst = ['Human']
    lst = ['Human','Monkey','Human', 'Human'] => lst = ['Human','Monkey','Human', 'Human']
    

    这是做你想做的事?

    if lst.count(lst[0])==len(lst):
       lst=list(set(lst))
       print lst 
    else:
       print lst 
    

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 2020-08-02
      • 2018-05-02
      • 2014-07-06
      • 1970-01-01
      • 2020-11-02
      • 2015-01-05
      • 2012-05-09
      • 1970-01-01
      相关资源
      最近更新 更多