如何在 KDB 中制作零字典?

How do I make a dictionary of zeroes in KDB?

假设我有一个(长)键列表:

`a`b`c

如何创建一个每个值为零的字典?

如果您的列表保存为变量,可以使用 count 关键字来实现。例如

q)c:`a`b`c
q)c!(count c)#0
a| 0
b| 0
c| 0

将 return 你的零字典。

如果你有一个空白的(或现有的)字典,你可以将 0 分配给你的所有键:

q)c:`a`b`c
q)d:()!()
q)d[c]:0
q)d
a| 0
b| 0
c| 0

只是为了增加一个选项,也可以使用 each-right \: 和 assign : 来做到这一点:

q)(`a`b`c!()):\:0
a| 0
b| 0
c| 0

如果 0 是默认值,您还可以在对其进行索引时使用填充:

q)d:`a`b`c!til 3
q)d[`d]
0N
q)0^d[`d]
0