我有一个列表,看起来像这样:
animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse'],['fox','monkey', 'zebra']]
Run Code Online (Sandbox Code Playgroud)
删除重复列表的最佳方法是什么?使用上面的例子,我正在寻找可以产生这个的代码:
uniq_animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse']]
Run Code Online (Sandbox Code Playgroud)
我首先想到我可以使用set(),但这似乎不适用于列表列表.我也看到了一个使用的例子itertools,但代码对我来说并不完全清楚.谢谢您的帮助!
Sve*_*ach 18
uniq_animal_groups = set(map(tuple, animal_groups))
Run Code Online (Sandbox Code Playgroud)
虽然你最终会得到一组元组而不是一组列表,但它会做到这一点.(当然你可以将它转换回列表列表,但除非有特定的理由这样做,为什么要这么麻烦?)
将列表转换为元组,然后您可以将它们放入集合中.
实质上:
uniq_animal_groups = set(map(tuple, animal_groups))
Run Code Online (Sandbox Code Playgroud)
如果您希望结果是列表列表,请尝试:
uniq_animal_groups = [list(t) for t in set(map(tuple, animal_groups))]
Run Code Online (Sandbox Code Playgroud)
要么:
uniq_animal_groups = map(list, set(map(tuple, animal_groups)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9246 次 |
| 最近记录: |