如何在KDB中更优雅地生成全1列表?
KDB 生成指定长度全1列表的实现方案
你当前使用的{1} each (til 500)写法虽然可正常运行,但简洁度、性能都有明显优化空间,更优雅的实现方式如下:
- 首选方案(社区标准写法,性能最优)
直接使用KDB内置的#重复运算符,写法为:
该运算符左侧为重复次数,右侧为待重复的元素,底层为原生C实现,比迭代类写法性能高数倍到数十倍,是该场景下的通用最优解,适配所有长度的列表生成需求。500#1 - 迭代写法修正(仅做语法参考,不推荐生产使用)
你之前尝试用'运算符没有生效,大概率是书写时没有加空格导致语法解析错误,正确的等价迭代写法为:
该写法和你原本的{1} ' til 500 // 或者 {1}'[til 500]each逻辑完全等价,但性能远低于#运算符实现,仅适合理解迭代语法时参考。
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

