можно создать словарь со значением списка - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь создать словарь со значением списка. список генерируется на основе ключа. Например, добавьте 1 к ключу и повторите 100 раз.

0| 1 1 ...1 //a list with 100 "1" which is key(0)+1
1| 2 2 ...2
2| 3 3 ...3
3| 4 4 ...4

Могу ли я сделать это в KDB?

Ответы [ 3 ]

2 голосов
/ 04 февраля 2020
{[lst;n]til[n]!lst+/:til n}[100#1;4]

Эта функция принимает список и число от n * от 1003 * до go. /: это наречие по-правому, которое в этом случае добавляется каждый параметр rhs к параметру lhs.

1 голос
/ 04 февраля 2020

Если вы хотите иметь возможность указывать ключи (например, неинкрементные):

{x!100#/:1+x:(),x}0 4 6

И, конечно, вы также можете сделать переменные 100 и 1

1 голос
/ 04 февраля 2020

Вы можете попробовать

{y#'1+til[x]!til x}[4;100]

Как правило, всякий раз, когда функция применяется к словарю в Q, она применяется к его списку значений. Предполагая это, функция y'#, примененная к словарю 0 1 2 ... ! 1 2 3 ... выше, превращает свои значения в списки констант.

...