How to remove duplicate tuples from a list in python?

前端 未结 4 2030
伪装坚强ぢ
伪装坚强ぢ 2021-01-03 11:22

I have a list that contains list of tuples as follows.

mylist = [[\'xxx\', 879], [\'yyy\', 315], [\'xxx\', 879], [\'zzz\', 171], [\'yyy\', 315]]
4条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-03 12:21

    It seems like you want to preserve order. In that case you can keep a set that keeps track of what lists have been added.

    Here is an example:

    mylist = [['xxx', 879], ['yyy', 315], ['xxx', 879], ['zzz', 171], ['yyy', 315]]
    
    # set that keeps track of what elements have been added
    seen = set()
    
    no_dups = []
    for lst in mylist:
    
        # convert to hashable type
        current = tuple(lst)
    
        # If element not in seen, add it to both
        if current not in seen:
            no_dups.append(lst)
            seen.add(current)
    
    print(no_dups)
    

    Which Outputs:

    [['xxx', 879], ['yyy', 315], ['zzz', 171]]
    

    Note: Since lists are not hashable, you can add tuples instead to the seen set.

提交回复
热议问题