I have a list of lists that looks like this:
animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse'],['fox','monkey', 'zebra']]
What is the best to remove duplicate lists? Using the above example, I am looking for code that would produce this:
uniq_animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse']]
I first thought I could use set(), but this doesn't appear to work on a list of lists. I also saw an example using itertools, but the code was not entirely clear to me. Thanks for the help!
Convert the lists to tuples, and then you can put them into a set.
Essentially:
uniq_animal_groups = set(map(tuple, animal_groups))
If you prefer the result to be a list of lists, try:
uniq_animal_groups = [list(t) for t in set(map(tuple, animal_groups))]
or:
uniq_animal_groups = map(list, set(map(tuple, animal_groups)))
                        uniq_animal_groups = set(map(tuple, animal_groups))
will do the trick, though you will end up with a set of tuples instead of a set of lists. (Of course you could convert this back to a list of lists, but unless there is a specific reason to do so, why bother?)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With