簡體   English   中英

如何在不使用 set() 的情況下從列表中刪除重復的元素?

[英]how to remove duplicated elements from a list without using set()?

a = np.array([1, 1, 1,1,1,1])
b = np.array([2,2,2])

是兩個 numpy arrays。 然后讓

c = [a]+[b]+[b]

顯然, c有重復的元素b 現在我想從c中刪除一個數組b以便c只包含一個a和一個b

為了刪除列表中的重復元素,我通常使用set() 但是,如果這一次,我這樣做

set(c)

我會收到類似的錯誤

TypeError: unhashable type: 'numpy.ndarray'

據我了解, numpy.ndarray不可散列。

上面的列表c只是一個例子,實際上我的c可能很長。 那么,有沒有什么好方法可以從 numpy.array 列表中刪除重復元素?

謝謝!


編輯:我希望我的回報是c = [a]+[b]

我認為這個問題與下面的問題相同。
從 numPy arrays 列表中刪除重復項

import numpy as np

a = np.array([1, 1, 1,1,1,1])
b = np.array([2,2,2])

arraylist = [a, b, b]
L = {array.tostring(): array for array in arraylist}
c = [v for v in L.values()]
c

結果 c:

[array([1, 1, 1, 1, 1, 1]), array([2, 2, 2])]

你可以用這個

c = a.tolist() + b.tolist() + b.tolist()

接着

c = set(c)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM