从列表列表中获取唯一项目?

2022-01-10 00:00:00 python duplicates

问题描述

我有一个如下所示的列表:

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']]

我最初认为我可以使用 set(),但这似乎不适用于列表列表.我还看到了一个使用 itertools 的示例,但代码对我来说并不完全清楚.感谢您的帮助!

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!


解决方案

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?)

相关文章