如何从其他列表中删除列表?

Fal*_*per 0 python python-2.7

我有类似的东西:

a = [4,3,1,6,3,5,3]
b = [4,2,6]
Run Code Online (Sandbox Code Playgroud)

我想从a中删除b的3个元素.我试图这样做:

c = a - b
Run Code Online (Sandbox Code Playgroud)

但我认为merge(+)的逆可能不是一个东西,并且是正确的: 不支持的操作数类型 - :list和list.我正在考虑绕过它们,但这并不是真的听起来像pythony.

我的最终状态将是: c = [3,1,3,5,3]

如果您没有注意到,则b不是a的子集,并且这些是无序的.2个不同的集合,这些集合也不是唯一的,但只想删除每个实例i in b,而不是所有实例i in b

编辑似乎目前的答案并没有解决我的问题.

a = [1,1,2,2,2,3,4,5]
b = [1,3]
c = [x for x in a if x not in b]
#c result is [2,2,2,4,5]
Run Code Online (Sandbox Code Playgroud)

我希望c返回: [1,2,2,2,4,5]

为了速度打字,我只是把排序的数字放在一起,但列表仍然没有排序,但为了清洁起见,我们可以对它们进行排序.

它们只是在init处未分类. 由于列表项中有重复项,因此我无法根据set的定义使用集合.

yse*_*rka 8

您可以使用以下代码:

[x for x in a if x not in b]
Run Code Online (Sandbox Code Playgroud)