从列表中删除重复的列表?

3

可能是重复问题:
Python:从列表的列表中删除重复项

从列表的列表中删除重复项的最佳方法是什么?

我尝试使用集合来实现:

L1 = [['fox', 'dog'],['bat', 'rat'],['fox', 'dog']]  
L1 = list(set(L1))

很遗憾,我收到了一个TypeError: unhashable type: 'list'的错误信息。
在我的列表中有两个['fox', 'dog']出现。我想让L1删除重复项,看起来像这样:
L1 = [['fox', 'dog'],['bat', 'rat']]
1个回答

9

如果你将内部列表转换为元组,就可以成功地将它们添加到一个集合中,例如:

>>> set(map(tuple, L1))
set([('fox', 'dog'), ('bat', 'rat')])

如果需要,您可以像这样返回列表的列表:
>>> map(list, set(map(tuple, L1)))
[['fox', 'dog'], ['bat', 'rat']]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接