可能重复:
的Python:从列表的列表中删除重复项
说我有表
a=[1,2,1,2,1,3]
如果在所有的元素都是可哈希(如在这种情况下),这将做的工作:
list(set(a))
但是,如果
a=[[1,2],[1,2],[1,3]]
?
可能重复:
的Python:从列表的列表中删除重复项
说我有表
a=[1,2,1,2,1,3]
如果在所有的元素都是可哈希(如在这种情况下),这将做的工作:
list(set(a))
但是,如果
a=[[1,2],[1,2],[1,3]]
?
Python的2
>>> from itertools import groupby
>>> a = [[1,2],[1,2],[1,3]]
>>> [k for k,v in groupby(sorted(a))]
[[1, 2], [1, 3]]
也工作在Python 3但需要提醒的是所有元素都必须订购类型。
这组作品的理解为列表清单中,以产生一组元组:
>>> {(tuple(e)) for e in a}
set([(1, 2), (1, 3)])
然后用它来,没有重复再次把它变成一个列表的列表:
>>> [list(x) for x in {(tuple(e)) for e in a}]
[[1, 2], [1, 3]]