从列表中删除重复的子列表?
可能重复的问题:
Python:从列表中删除重复项
从一个包含多个列表的列表中,最好的去除重复项的方法是什么?
我试着用集合(set)来处理,像这样:
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']]