由于列表是可变的,因此不能进行哈希处理。最好的选择是将它们转换为元组并形成一个集合,像这样
>>> mat = [[1,2,3],[4,5,6],[1,2,3],[7,8,9],[4,5,6]]
>>> set(tuple(row) for row in mat)
set([(4, 5, 6), (7, 8, 9), (1, 2, 3)])
我们一次遍历mat
一个列表,将其转换为一个元组(它是不可变的,因此set
s很酷)并将生成器发送到该set
函数。
如果要将结果作为列表列表,则可以通过将set
函数调用的结果转换为列表来将其扩展为列表,如下所示
>>> [list(item) for item in set(tuple(row) for row in mat)]
[[4, 5, 6], [7, 8, 9], [1, 2, 3]]