Python 在保持序列的同时删除二维数组中的重复项
我已经找到了很多关于删除阵列中重复项的线程,但没有一个是针对我的特定用例的。我有一个二维列表,我需要从中删除重复项,但我必须保持原始序列Python 在保持序列的同时删除二维数组中的重复项,python,arrays,Python,Arrays,我已经找到了很多关于删除阵列中重复项的线程,但没有一个是针对我的特定用例的。我有一个二维列表,我需要从中删除重复项,但我必须保持原始序列 mylist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']] 我需要简单地删除副本而不重新安排,所以 newlist = [['Installation', '64%'], ['C2', '14%'],
mylist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
我需要简单地删除副本而不重新安排,所以
newlist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
感谢您提供帮助跟踪看到的项目:
>>> mylist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
>>> seen = set()
>>> newlist = []
>>> for item in mylist:
... t = tuple(item)
... if t not in seen:
... newlist.append(item)
... seen.add(t)
...
>>> newlist
[['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
注意
您需要将列表转换为元组(列表不可散列);无法将列表添加到集合
>>> seen = set()
>>> seen.add([1,2])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> seen.add(tuple([1,2]))
>>>
>>seen=set()
>>>见。添加([1,2])
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:不可损坏的类型:“列表”
>>>seen.add(元组([1,2]))
>>>
[['Installation','64%']、['C2','14%']、['NA','14%']、['NA','7%']
importnumpy
asnp
:
myList = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
mylist=np.unique(myList,axis=0)
print (mylist)
myList = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
mylist=np.unique(myList,axis=0)
print (mylist)