给出列表清单:
L = [[1,2,3], [3,4,5], [1,2,3]]
如何获取每个列表唯一的列表:
L = [[1,2,3], [3,4,5]]
感谢
答案 0 :(得分:3)
如果您不关心子列表的顺序:
In [11]: list(map(list, set(map(tuple, L))))
Out[11]: [[3, 4, 5], [1, 2, 3]]
更好的是,您可能只需要使用元组集作为数据结构。
答案 1 :(得分:2)
有点唠叨但是这个怎么样?
[list(el) for el in set(tuple(el) for el in L)]
它的工作原理是因为列表无法相互比较,但元组可以。如果您尝试直接从列表列表中创建一个集合,则会显示错误消息:
unhashable type: 'list'
答案 2 :(得分:1)
L = [[1,2,3], [3,4,5], [1,2,3]]
newlist = []
for item in L:
if item not in newlist:
newlist.append(item)
答案 3 :(得分:0)
您可以转换为一组元组,然后返回列表。
L = [[1,2,3], [3,4,5], [1,2,3]]
setL = set(tuple(i) for i in L)
newL = list(list(i) for i in setL)
print newL
[[3,4,5],[1,2,3]]