kdb单项列表未初始化

hed*_*red 1 kdb q-lang

我正在通过Kx技术培训课程,有一条线说

"Enlist适用于所有数据对象;任何数据对象的结果都是单项目列表,其项目是该对象.例如"

 enlist(2 5;3.5 10 12)
    ,(2 5;3.5 10 12)
Run Code Online (Sandbox Code Playgroud)

该结果不是浮点数的一维列表.它是一个二维列表,其中唯一的元素是浮点数的一维列表

但是,当我完全按照QI做的例子时,不要那样做.我明白了

enlist(2 5;3.5 10 12)
2 5 3.5 10 12
Run Code Online (Sandbox Code Playgroud)

所以下面的工作,我期望不能工作给出所谓的结构的解释:

enlist(2 5;3.5 10 12)+1
3 6 4.5 11 13
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

小智 5

它只是q控制台显示输出的方式.您的清单仍然有效.

如果你做一个简单的计数,你会发现差异:

q)count (2 5;3.5 10 12)            / a list with 2 elements
2
q)count enlist (2 5;3.5 10 12)     / a list with 1 element
1
Run Code Online (Sandbox Code Playgroud)

甚至是简单的索引:

q)(2 5;3.5 10 12)0                 / get the first element of the list
2 5
q)enlist[(2 5;3.5 10 12)]0         / get the first element of the enlisted list
2 5
3.5 10 12
Run Code Online (Sandbox Code Playgroud)

或者你可以切换到k控制台来查看结果:

q)\
  (2 5;3.5 10 12)
(2 5;3.5 10 12)
  .q.enlist(2 5;3.5 10 12)
,(2 5;3.5 10 12)
Run Code Online (Sandbox Code Playgroud)

同时+运营商致力于通过嵌套结构,这就是为什么它会不会报错了.

  • 或者使用0N!(2 5; 3.5 10 12); 在q控制台中查看 (2认同)