我有一本名为 books 的字典。
q)type books
99h
q)key books
`ETH-USD-BIDS`ETH-USD-ASKS`BTC-USD-BIDS`BTC-USD-ASKS
q)type books[`$"ETH-USD-BIDS"]
99h
q)key books[`$"ETH-USD-BIDS"]
3518.12 3517.97 3517.96 3517.86 3517.85 3517.84 3517.63 3517.58 3517.51 3517.43 3517.26..
我可以成功地索引每本书以找到每个价格水平的数量
q)books[`$"ETH-USD-BIDS"][3518.12]
.035
但是当我尝试用新的交易量更新特定价格水平时,我收到了一个'assign
错误。
q)books[`$"ETH-USD-BIDS"][3518.12]:4f
'assign
[0] books[`$"ETH-USD-BIDS"][3518.12]:4f
任何人都可以帮助我了解如何将新数量分配到我的价格水平吗?我有些困惑。谢谢!!
最佳答案
使用 ;
进行深度索引/修改,而不是使用多个 []
。
q)dict:(`a`b`c)!(`d`e`f!til 3;`g`h`i!2*til 3;`j`k`l!1+til 3)
q)dict
a| `d`e`f!0 1 2
b| `g`h`i!0 2 4
c| `j`k`l!1 2 3
q)dict[`a;`d]:20
q)dict
a| `d`e`f!20 1 2
b| `g`h`i!0 2 4
c| `j`k`l!1 2 3
/ q operates right to left so this is evaluating first giving the error
q)[3518.12]:4f
'assign
[0] [3518.12]:4f
关于dictionary - KDB+如何更新嵌套字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69109366/