如何在KDB中过滤列表,筛选出符合指定条件的元素?
首先明确你当前使用的是kdb+的q语言,l: til 10的作用是生成包含0到9的整数列表0 1 2 3 4 5 6 7 8 9。
正确实现方式
q语言筛选符合条件的列表元素有两种常用的合法写法:
- 使用
where获取符合条件的索引后取值,这是q中更推荐的写法:
l where l<3
- 直接用布尔列表索引,你写的
l[l<3]本身语法是合法的,运行失败大概率是你输入的小于号用了HTML转义字符<,替换为半角<即可正常运行:
l[l<3]
错误写法说明
你尝试的l . (l<3)不符合q语法规则:q中的点运算符用于调用函数、索引嵌套字典/列表,不能用于一维列表的布尔筛选场景。
运行示例
q)l:til 10 q)l 0 1 2 3 4 5 6 7 8 9 q)l<3 1110000000b q)l where l<3 0 1 2 q)l[l<3] 0 1 2
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

