org = [1,1,1,1,2,2,4]
remove = [1,1,2]
result = foo(org, remove)
# result = [1,1,2,4]
# two 1 are removed and one 2
我想從 中洗掉專案org,但不是所有專案都具有相同的值 - 只有一個洗掉remove-array中的每個專案
是否有一個 numpy 函式可以這樣做?
uj5u.com熱心網友回復:
根據 CJR 的評論,事實證明內置Counter函式理解減法并“做正確的事”。它默默地忽略第一個計數器中不存在的任何元素。
所以你可以做這樣的事情:
from collections import Counter
c1 = Counter(org)
c2 = Counter(remove)
result = list((c1 - c2).elements())
給result = [1,1,2,4].
編輯:當然,這不一定會保留順序。如果您知道兩個集合無論如何都已經在開始時排序了,那么將會有一種更有效的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369794.html
