KDB:如何对 2 个列表执行减号

KDB: How do I perform a minus on 2 Lists

输入:

a: 1 2 3 4 5 
b: 5 2 6 7

删除a中b的所有元素需要做什么操作?

预期输出:

1 3 4

except 函数将从一个列表中删除另一个列表中的项目。

q) a except b
1 3 4

希望对您有所帮助。

我认为您要查找的关键字是 except,例如:

q)c: a except b
q)c
    1 3 4

Except returns 其左参数中右参数中不存在的所有元素。

关键字except是其他人提到的答案。此外,值得花时间调查 except 在幕后实际做了什么,因为它通常有助于更好地理解 kdb/q 的一般运作方式。检查 except 你可以看到

q)except
k){x@&~x in y}

将 kdb/q 转换为

q)a where not a in b
1 3 4

同样,您仍应使用 except,但了解它的实现方式很有用