我有以下两个列表:
x:(("AA";"AA");("BB";"BB"))
y:(("11";"11");("22";"22"))
我针对此结果:
z =((“ AA11”;“ AA11”);(“ BB22”;“ BB22”))
我尝试过:
x,'y
但这会导致所有矢量都不由子矢量连接。
答案 0 :(得分:3)
由于列表是嵌套的,因此需要两次使用each-both
:
q)x,''y
(("AA11";"AA11");("BB22";"BB22"))
或者,如果您不关心结构,则可以先raze
并使用单个each-both
q)raze[x],'raze[y]
("AA11";"AA11";"BB22";"BB22")
答案 1 :(得分:2)
在不确定嵌套级别时,使用.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")))