连接 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.s
和 each-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")))
我有以下两个列表:
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.s
和 each-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")))