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

标签 python list

<分区>

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

目前发生了什么:我的第一个函数只有在列表 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

可能想到的是:使用“not in”函数判断某物是否在b中。

示例输入/输出:

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

输入:array_diff([1,2,2], [1]) 输出:[2](结果应该是 [2,2]

最佳答案

就这样使用它:

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

关于python - 在 Python 中从另一个列表中减去一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43968369/

相关文章:

python - 使用 Python 进行 redshift mysql 迁移

python - enabled_when 监听外部模型对象

python - 诊断 boto3 中的内存泄漏

Python正则表达式报告字符串存在的行

python - 对列表中的列表中的字典进行列表理解

CSS 问题导航按钮

java - 在 JAVA 中同时用对象和另一个列表初始化最终列表?

python - float 末尾的后缀e+number在python中是什么意思?

python - 切片 3d numpy 数组返回奇怪的形状

python - 列表中的 Pandas groupby 值