I have a list that contains list of tuples as follows.
mylist = [['xxx', 879], ['yyy', 315], ['xxx', 879], ['zzz', 171], ['yyy', 315]]
I want to remove the duplicate tuples from mylist and get an output as follows.
mylist = [['xxx', 879], ['yyy', 315], ['zzz', 171]]
It seems like set in python does not work for it.
mylist = list(set(mylist))
Is there any fast and easy way of doing this in python (perhaps using libraries)?
解决方案
You need to write code that keeps the first of the sub-lists, dropping the rest. The simplest way to do this is to reverse mylist, load it into an dict object, and retrieve its key-value pairs as lists again.
>>> list(map(list, dict(mylist).items()))
Or, using a list comprehension -
>>> [list(v) for v in dict(mylist).items()]
[['zzz', 171], ['yyy', 315], ['xxx', 879]]
Note, that this answer does not maintain order! Also, if your sub-lists can have more than 2 elements, an approach involving hashing the tuplized versions of your data, as @JohnJosephFernandez' answer shows, would be the best thing to do.