【问题标题】:how do i update or delete nested dictionary in kdb?我如何更新或删除 kdb 中的嵌套字典?
【发布时间】:2022-12-22 03:42:46
【问题描述】:

我想删除或更新嵌套字典中的值

例如。

d:`date`tab`col!((2022.12.01;2022.12.03);`TRADE`SYM;`ID`CODE`PIN`NAME)

我想将 `PIN 更新为 `Yen 或者从字典中删除 `PIN`CODE

【问题讨论】:

    标签: kdb


    【解决方案1】:

    你可以这样做:

    q)@[d;`col;{x where not x in`CODE`PIN}]
    date| 2022.12.01 2022.12.03
    tab | TRADE      SYM
    col | ID         NAME
    

    【讨论】:

      【解决方案2】:

      我认为由于嵌套的性质,这可能有点繁琐,但替换值可以用字典和填充来完成。如果有多个,这将替换 PIN 的所有实例。

      @[d;`col;{x^(enlist[`PIN]!enlist`YEN) x}]
      date| 2022.12.01 2022.12.03
      tab | `TRADE`SYM
      col | `ID`CODE`YEN`NAME
      

      可以使用except 完成删除。

      q)@[d;`col;except[;`PIN`CODE]]
      date| 2022.12.01 2022.12.03
      tab | TRADE      SYM
      col | ID         NAME
      

      如果找到更好的方法来执行这两项操作,我不会感到惊讶。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-20
        • 2020-10-14
        • 1970-01-01
        • 1970-01-01
        • 2018-04-14
        • 2017-03-08
        相关资源
        最近更新 更多