如何在kdb中使用'操作符实现列表字符串的逐一比较?
Kdb字符串逐元素比较的正确写法
你遇到的报错是因为~'(each)操作符要求左右两边的列表长度完全匹配:左边"tbl"是长度为1的字符串,右边("customer";"tbl")是长度为2的列表,长度不匹配导致报错。
要实现单字符串和列表中每个元素逐一比较,有两种简洁的写法:
方法1:使用each right操作符~':
这是最地道的kdb写法,专门处理单元素对多元素的逐元素操作:
"tbl" ~': ("customer";"tbl")
执行后会输出01b,符合你的期望。
方法2:扩展左边为同长度列表
把左边的单个字符串复制成和右边列表长度一致的列表,再用~'比较:
("tbl";"tbl") ~' ("customer";"tbl")
同样能得到01b,但这种写法不如第一种简洁。
内容的提问来源于stack exchange,提问作者sevenmiracle
相关产品推荐
相关产品推荐

