输入:
a: 1 2 3 4 5
b: 5 2 6 7
我需要执行什么操作才能删除a中b的所有元素?
预期输出:
1 3 4
答案 0 :(得分:4)
我认为您要查找的关键字是except
,如下所示:
q)c: a except b
q)c
1 3 4
Except
返回其右参数中缺少的所有左参数元素。
答案 1 :(得分:3)
except
函数将从一个列表中删除另一个列表中的项目。
q) a except b
1 3 4
希望有帮助。
答案 2 :(得分:1)
关键字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
,但了解其实现方法很有用