在KDB中如何将两个字符串列表逐元素拼接为完整姓名列表
KDB 字符串列表逐元素拼接实现方案
错误原因说明
你之前的两种写法没有生效,是因为操作默认作用于整个列表而非逐对同位元素:
- 直接写
firstName,lastName会将两个列表前后拼接为一个更长的单列表,不会逐元素合并 - 直接写
"" sv (firstName;lastName)会将两个列表的所有元素拼接为单个长字符串,无法得到对应位置的姓名列表
实现方案
前置测试数据
// 定义测试用姓名列表 firstName: ("William";"Joseph";"Charles";"David";"Michael";"William") lastName: ("Jones";"Brown";"Johnson";"Rodriguez";"Rodriguez";"Wilson")
方法1:使用逐元素拼接操作符,/'
写法最简单,适合基础拼接场景:
// 无空格直接拼接 full_name: firstName,'lastName // 姓名场景常用的带空格拼接 full_name: firstName,'" ",'lastName
方法2:结合sv与二元each操作符'
灵活性更高,可自定义任意分隔符:
// 自定义空格作为分隔符逐元素拼接 full_name: {" " sv (x;y)}'[firstName;lastName]
输出结果
两种方法最终得到的full_name结果一致:
("William Jones";"Joseph Brown";"Charles Johnson";"David Rodriguez";"Michael Rodriguez";"William Wilson")
内容的提问来源于stack exchange,提问作者Frank Lou
相关产品推荐
相关产品推荐

