在Python中从另一个列表中减去一个列表

Dea*_*Pox 4 python list

我想要发生的事情:当给出两个列表(列出a和列表b)时,删除列表b中的列表中的数字.

目前发生的情况:我的第一个功能仅在列表a只有一个要删除的数字时起作用.

我尝试过的方法:将列表转换为集合,然后减去a - b

def array_diff(a, b):
  c = list(set(a) - set(b))
  return c
Run Code Online (Sandbox Code Playgroud)

还试过:将列表转换为集合,在a中查找n,在b中查找m,然后如果n = m则删除n.

def array_diff(a, b):
  list(set(a))
  list(set(b))
  for n in (a): 
    for m in (b):
      if n == m:
        n.remove()

        return a
Run Code Online (Sandbox Code Playgroud)

可能想到:使用"不在"功能来确定某些事物是否在b中.

输入/输出样本:

INPUT:array_diff([1,2],[1])输出:[2]

INPUT:array_diff([1,2,2],[1])OUTPUT:[2](这应该是[2,2]

Dan*_*aub 5

就这样使用它:

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