kdb - q - 列表的字符串表示形式

标签 kdb q-lang

我有一个 list

filter:((in;`name;`betsy`robert`tom);(>;`age;43));

我想从中得到以下列表表示

"((in;`name;`betsy`robert`tom);(>;`age;43))"

到目前为止我发现的是:

flatten:{[alist]
    $[(count alist)~count raze alist;:alist;:flatten raze alist];
    };
";" sv string raze flatten[filter]
/ gives: "in;name;betsy;robert;tom;>;age;43"

它会丢失 filter 列表中的嵌套列表。

归功于:https://lifeisalist.wordpress.com/2009/07/10/p07-flatten-a-nested-list-structure/

谢谢!

最佳答案

我认为您正在寻找的命令是 .Q.s.Q.s1 以纯文本形式返回 kdb 代码:

q).Q.s1 filter
"((in;`name;`betsy`robert`tom);(>;`age;43))"

需要注意的是,这些函数的输出受到 \c 的限制。 .

关于kdb - q - 列表的字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48399512/

相关文章:

r - 如何取消 data.table 中的列表列分组?

kdb - 如何在 kdb 中找到元素索引?

kdb - 为什么kdb+tick中的第一列不能是String类型

kdb - 如何通过迭代多个列表来生成数据表? (KDB)

kdb - 创建基于滚动计算的唯一条目 (Q/KDB+)

kdb - 了解带有子列表的 q-sql 查询

python - PyQ 中的 Kdb 数据库到 NumPy 数组

KDB:从每组中选择前 n 行

real-time - 如何在 KDB 中流式传输数据?

kdb q - 对列表中的每个原子应用 each-left 并减少