【问题标题】:check duplicates in unhashable list of lists [duplicate]检查不可散列列表中的重复项[重复]
【发布时间】:2020-04-05 23:58:12
【问题描述】:

我有以下清单:

L = [['a', 'b'], ['x'], ['a', 'b', 'c'], ['a', 'b']]

我想检查列表中是否有重复项。

试过了:

def checkIfDuplicates_(listOfElems):
    ''' Check if given list contains any duplicates '''    
    for elem in listOfElems:
        if listOfElems.count(elem) > 1:
            return True
    return False

len(L)==len(set(L))

并将每个子列表变成元组

check_L = list(set(tuple(L) for x in L))

不工作

【问题讨论】:

    标签: python list duplicates tuples hashable


    【解决方案1】:

    你其实很接近这个:

    check_L = list(set(tuple(L) for x in L))
    

    有一个小错误,因为您在实际需要 tuple(x) 的地方使用了 tuple(L)。如果我们纠正它,我们会得到:

    >>> list(set(tuple(x) for x in L))
    [('a', 'b', 'c'), ('x',), ('a', 'b')]
    

    要转回嵌套列表,我们可以这样做:

    >>> [list(y) for y in set(tuple(x) for x in L)]
    [['a', 'b', 'c'], ['x'], ['a', 'b']]
    

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 2014-04-20
      • 2018-02-12
      • 1970-01-01
      • 2015-12-18
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      相关资源
      最近更新 更多