2017-02-23 14 views
-3

私はlistA内に存在するすべての出現をリストB内で同じものを削除しなければならない部分に悩まされています。python他のリストに基づいてリストから要素を削除

例:

A=[1,4,4,4,3,3,2,1,5,5] 
B=[4,3] 

結果はA=[1,2,1,5,5]でなければなりません。理想的には、私は線形時間でそれをしたいと思うでしょう。 Set Operationsを使用して

+0

申し訳ありませんが、今、私の質問の軽微な変更をtheresの。私はリストAに繰り返し値を持たせたい –

答えて

0

List Comprehensionを使用して

list(set(A) - set(B)) 

In [11]: [i for i in A if i not in B] 
Out[11]: [1, 2, 1, 5, 5] 
+0

申し訳ありません、私の質問の今のマイナーチェンジ。私はリストAに値を繰り返すことを望みます –

+0

@SaiPardhuそれに応じて変更 –

+1

すごい、ありがとう!! –

1

list comprehensionで試してみてください

list(set([i for i in A if i not in B])) 
+0

まだ重複要素の可能性があります。 –

+0

申し訳ありませんが、私の質問ではマイナーチェンジになりました。私は私のリストAが値を繰り返し持つことを望むでしょう –

関連する問題