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

时间:2017-05-14 20:10:32

标签: python list

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

当前发生的事情:我的第一个功能仅在列表a只有一个要删除的号码时有效。

我尝试了什么:将列表转换为集合,然后减去a - b

def array_diff(a, b):
  c = list(set(a) - set(b))
  return c

还试过:将列表转换为集合,在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

可能想到:使用"而不是"用于确定某事物是否在b中。

示例输入/输出:

INPUT:array_diff([1,2],[1])OUTPUT:[2]

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

1 个答案:

答案 0 :(得分:5)

就这样使用它:

 c = [x for x in a if x not in b]