kdb/Q 如何在函数中存储和返回多个值?

问题描述 投票:0回答:1

我有一个关于返回具有更优化指标的两个列表之一的问题。

我的函数接受一个数字列表。然后它会更改这些数字之一,并在每个列表的内容相加时比较哪个列表具有最高值。

我希望它返回具有较高指标和指标的列表。

例如:

original_list = [1 2 3]

def my_function:{[original_list]
    # create a new list, changing just one value
    new_list = change_one_number[original_list]

    # generate the metrics for both lists
    original_metric = calculate_metric[original_list]
    new_metric = calculate_metric[new_list]

    #if statement here
    ?[new_metric >= original_metric; new_list; original_list]}
                                     ^         ^
                                     #these outputs are just the list though

我想知道如何返回具有更高指标和指标的列表,这可能吗?

list kdb
1个回答
0
投票

您可以只返回一个由两个元素组成的列表,修改后的列表和原始列表,或者任何其他元素。

f:{[originalList]
  newList:modify[originalList];
  :(originalList;newList);
}

基本上,您将返回一个列表列表,其中第一个列表是您的原始列表,第二个列表是您的新列表。

© www.soinside.com 2019 - 2024. All rights reserved.