连接 q 中的向量列表

Concate list of vectors in q

我有以下两个列表:

x:(("AA";"AA");("BB";"BB"))
y:(("11";"11");("22";"22"))

我的目标是这个结果:

z = (("AA11";"AA11");("BB22";"BB22"))

我试过:

x,'y 

但这会导致所有向量都不是由子向量连接的。

由于列表是嵌套的,您需要使用 each-both 两次:

q)x,''y
(("AA11";"AA11");("BB22";"BB22"))

或者如果你不关心结构,你可以先raze它然后使用单个each-both

q)raze[x],'raze[y]
("AA11";"AA11";"BB22";"BB22")

当您不确定嵌套级别时,使用 .z.seach-both 的更通用的解决方案:

q)f:{$[10h=type x;x,y;.z.s'[x;y]]}

q)x:(("AA";"AA");("BB";"BB"))
q)y:(("11";"11");("22";"22"))

q)f[x;y]
(("AA11";"AA11");("BB22";"BB22"))


q)x:((("AA";"AA");("BB";"BB"));(("CC";"CC");("DD";"DD")))
q)y:((("11";"11");("22";"22"));(("33";"33");("44";"44")))

q)f[x;y]
((("AA11";"AA11");("BB22";"BB22"));(("CC33";"CC33");("DD44";"DD44")))