从python中的多维数组中删除重复的条目

Neo*_*Neo 8 python arrays

我有一个二维数组

 xx=[[a,1],[b,2],[c,3]]
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试从中删除重复的条目.对于简单的1-D数组,简单的代码就像

xx=list(set(xx))
Run Code Online (Sandbox Code Playgroud)

会工作.但尝试在二维元素上设置会产生错误

temp = set(xx)
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

一种解决方法是序列化xx元素,然后在新数组上执行一个列表(set()),然后再次反序列化所有元素.

在python中有什么解决方案吗?

Man*_*dan 19

将元素转换为元组然后使用set.

>>> xx=[['a',1],['b',2],['c',3],['c',3]]
>>> set(tuple(element) for element in xx)
set([('a', 1), ('b', 2), ('c', 3)])
>>> 
Run Code Online (Sandbox Code Playgroud)

与列表不同,元组可以进行哈希处理.因此.完成后,将元素转换回列表.把所有东西放在一起:

>>> [list(t) for t in set(tuple(element) for element in xx)]
[['a', 1], ['b', 2], ['c', 3]]
Run Code Online (Sandbox Code Playgroud)