我有一个 列表列表:
mat = [[1,2,3],[4,5,6],[1,2,3],[7,8,9],[4,5,6]]
我想转换成一个 集合,即删除重复列表并从中创建一个只包含 唯一 列表的新列表。
在上述情况下,所需的答案将是
[[1,2,3],[4,5,6],[7,8,9]]
但是当我做 set(mat)
时,它给了我错误
类型错误:无法散列的类型:“列表”
你能解决我的问题吗?提前致谢!
原文由 Mayank Jain 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于 列表是可变的,因此不能对其进行哈希 处理。最好的办法是将它们转换为一个元组并形成一个集合,就像这样
我们遍历
mat
,一次一个列表,将其转换为一个元组(它是不可变的,所以set
对它们很酷)并将生成器发送到set
函数。如果您希望结果作为列表列表,您可以通过将
set
函数调用的结果转换为列表来扩展相同的列表,如下所示