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

时间:2011-07-29 22:49:42

标签: python list set

  

可能重复:
  Python: removing duplicates from a list of lists

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

我试图使用这样的设置:

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

不幸的是,我得到一个TypeError:unhashable类型:'list'。

在我的列表中有两次出现['fox','dog']。我希望L1删除副本,看起来像这样:

L1 = [['fox','dog'],['bat','rat']]

1 个答案:

答案 0 :(得分:8)

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

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

如有必要,您可以返回如下列表:

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