【问题标题】:KDB: apply function to all values in a dictionaryKDB:将函数应用于字典中的所有值
【发布时间】:2019-05-05 10:36:36
【问题描述】:

我有一个字典,不同的前缀对应不同的键。我想将字符串附加并预先添加到字典中的每个值。

例如:

filePrefixes: `QCentral`QWest`QEast!("GLO_CCEUML_CSFBSL_";"GLO_CCALML_CSFBSL_";"GLO_CCAPML_CSFBSL_")

我想预先添加 folderPath 并附加 dateFormat 和文件扩展名“.csv”。

所以字典应该是这样的:

filePrefixes: `QCentral`QWest`QEast!("..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCEUML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCALML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCAPML_CSFBSL_20181203_1948.csv")

我做了这样的事情。不确定是否有更好的方法来做到这一点:

  filename: (value filePrefixes),\:(dateFormat,".csv");
  filePaths: string[folderPath],/:(filename);
  filePrefixes:(key filePrefixes)!(filePaths);

【问题讨论】:

    标签: string function dictionary kdb


    【解决方案1】:

    如果有帮助,可以直接在字典中修改这些值。根据您的示例代码对dateFormatfolderPath 做出一些假设:

    dateFormat:"20181203_1948";
    folderPath:"..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\"
    

    这可以与您在上面提供的步骤结合使用,而无需提取值:

    q)show filePrefixes:folderPath,/:filePrefixes,\:dateFormat,".csv"
    QCentral| "..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\GLO_CCEUML_CSFBSL_20181203_1948.csv"
    QWest   | "..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\GLO_CCALML_CSFBSL_20181203_1948.csv"
    QEast   | "..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\GLO_CCAPML_CSFBSL_20181203_1948.csv"
    

    本质上,这些值就像一个列表,有一些限制,在 Q 中的dictionaries 部分中简要讨论了一些限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 2016-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多