从列表列表中删除重复项的最佳方法是什么?
我试图使用这样的设置:
L1 = [['fox', 'dog'],['bat', 'rat'],['fox', 'dog']]
L1 = list(set(L1))
不幸的是,我得到一个TypeError:unhashable类型:'list'。
在我的列表中有两次出现['fox','dog']。我希望L1删除副本,看起来像这样:
L1 = [['fox','dog'],['bat','rat']]
答案 0 :(得分:8)
如果将内部列表转换为元组,则可以将它们成功添加到集合中,例如:
>>> set(map(tuple, L1))
set([('fox', 'dog'), ('bat', 'rat')])
如有必要,您可以返回如下列表:
>>> map(list, set(map(tuple, L1)))
[['fox', 'dog'], ['bat', 'rat']]