Python:列表列表中的唯一性

时间:2013-03-20 17:29:52

标签: python list

给出列表清单:

L = [[1,2,3], [3,4,5], [1,2,3]]

如何获取每个列表唯一的列表:

L = [[1,2,3], [3,4,5]]

感谢

4 个答案:

答案 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]]