2017-02-23 174 views
-3

我被我的代码中的一个部分卡住,我必须删除列表B中出现的所有listA中出现的相同的部分。python从列表中删除基于其他列表的元素

实施例:

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

结果应该是A=[1,2,1,5,5]。理想情况下,我想要在线性时间内完成。

+0

对不起,现在那里有我的问题的微小变化。我想我的名单A也有重复的价值 –

回答

0

list comprehension尝试,

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

使用Set Operations

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

使用List Comprehension

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

仍然有重复元素的机会, –

+0

对不起,我的问题现在有一个小的改变。我想我的名单A也有重复的价值 –