我有兩個陣列,我試圖找到第一個陣列中但不在第二個陣列中的值。但是,有一個問題,雖然第一個陣列中有兩個b,但由于另一個陣列中只有一個b,它看到它是相同的,并給出了沒有區別的輸出。我怎么解決這個問題?
x = ["a","b","b"]
y = ["a","b"]
print(set(x)-set(y))
uj5u.com熱心網友回復:
這應該可以解決問題
for i in y:
if (i in x):
x.remove(i)
print(x)
uj5u.com熱心網友回復:
嘗試這個:
from collections import Counter
res = [k for k, v in (Counter(x) - Counter(y)).items() for _ in range(v)]
這種方法的復雜性是你所能得到的最好的(即 O(n))。
例子:
>>> x = [1,2,2,2,3,4,5]
>>> y = [1,2,4]
>>> res = [k for k, v in (Counter(x) - Counter(y)).items() for _ in range(v)]
>>> res
[2, 2, 3, 5]
使用這種方法,您將失去元素的順序。如果這對您不利,請告訴我。
uj5u.com熱心網友回復:
我的方法將是串列理解:
x = ["a","b","b"]
y = ["a","b"]
[x.remove(element) for element in y if element in x]
輸出:
['b']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/360122.html
標籤:Python 数组 蟒蛇-3.x 列表 python-2.7
