我有一个二维数组
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)