自从列表是可变的,它们不能被散列 https://stackoverflow.com/a/23268979/1903116。最好的办法是将它们转换为元组并形成一个集合,如下所示
>>> 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]]