如何在DolphinDB中拼接两个元组?
DolphinDB元组扁平拼接的正确实现方式
问题场景
你有两个元组:
a=(1,2,3) b=(4,5,6)
尝试用join或append!拼接时,得到的是嵌套元组(1,2,3,(4,5,6)),但期望结果是扁平的(1,2,3,4,5,6)。
正确实现方法
方式一:使用元组展开运算符 ..
通过..运算符展开第二个元组的元素,再完成拼接:
a=(1,2,3) b=(4,5,6) re = a, ..b
执行后re的结果就是(1,2,3,4,5,6)。
方式二:转向量拼接后转回元组
先将元组转为同构向量,拼接后再转回元组:
a=(1,2,3) b=(4,5,6) re = tuple(join(vector(a), vector(b)))
这种方式也能得到扁平的拼接结果。
原因说明
DolphinDB中,元组属于异构容器,join和append!默认会把整个元组作为单个元素添加到原元组中,因此产生嵌套结构。而..运算符可以直接展开元组内的元素,实现扁平拼接;转为向量后拼接则是利用了向量的同构特性,拼接完成后再转回元组即可达到目的。
内容的提问来源于stack exchange,提问作者douya huang
相关产品推荐
相关产品推荐

