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