Python: Remove Duplicate Items from Nested list

后端 未结 3 902
忘了有多久
忘了有多久 2020-11-30 13:34
mylist = [[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]

I want to remove duplicate items, duplicated items can be reversed. The result should be :



        
相关标签:
3条回答
  • 2020-11-30 13:46

    If the Order Matters you can always use OrderedDict

    >>> unq_lst = OrderedDict()
    >>> for e in lst:
        unq_lst.setdefault(frozenset(e),[]).append(e)
    
    
    >>> map(list, unq_lst.keys())
    [[1, 2], [4, 5], [3, 4]]
    
    0 讨论(0)
  • 2020-11-30 13:49
    lst=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]
    fset = set(frozenset(x) for x in lst)
    lst = [list(x) for x in fset]
    

    This won't preserve order from your original list, nor will it preserve order of your sublists.

    >>> lst=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]
    >>> fset = set(frozenset(x) for x in lst)
    >>> lst = [list(x) for x in fset]
    >>> lst
    [[1, 2], [3, 4], [4, 5]]
    
    0 讨论(0)
  • 2020-11-30 13:58

    If order is not important:

    def rem_dup(l: List[List[Any]]) -> List[List[Any]]:
        tuples = map(lambda t: tuple(sorted(t)), l)
        return [list(t) for t in set(tuples)]
    
    0 讨论(0)
提交回复
热议问题