【问题标题】:KDB+ how to update nested dictionaries?KDB+如何更新嵌套字典?
【发布时间】:2021-09-08 20:33:42
【问题描述】:

我有一本字典,叫做书。

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

谁能帮助我了解如何为我的价格水平分配新的交易量?我有些困惑。谢谢!!

【问题讨论】:

    标签: dictionary kdb


    【解决方案1】:

    使用; 进行深度索引/修改,而​​不是多个[]

    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
    

    【讨论】:

    • 它是一个美丽的东西!非常感谢马特!
    猜你喜欢
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 2022-01-25
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多