2016-11-15 2 views

ответ

5

Вы можете изменить вы словарю таким образом:

// @[dictionary name; list of keys; ?; list of values]; 
@[d; `1`2; :; `11`22]; 
3

Также можно функционально обновить словарь со стандартом изменить набор синтаксиса/(с помощью «:») следующим образом:

q)x:1 2 3 

q)d:x!x 

q)d 
1| 1 
2| 2 
3| 3 

q)f:{d[x]:y} 
q)f[2;7] 

q)d 
1| 1 
2| 7 
3| 3 

Это также работает для векторов при условии их е же длина:

q)f[1 2;5 6] 
q)d 
1| 5 
2| 6 
3| 3 
2

Другим способ:

q)x:1 2 3; 
q)d:x!x; 
q)d 
    1| 1 
    2| 2 
    3| 3 
q)d,: enlist[2]!enlist[5]; 
q)d 
    1| 1 
    2| 5 
    3| 3 
q)d,: (2 3)!(7 7); 
q)d 
    1| 1 
    2| 7 
    3| 7 
0

Вы можете использовать простую поправку на ключ, который вы хотите изменить.

q)d[1 2]+:10 
q)d 
1| 11 
2| 12 
3| 3 

Это эквивалент

d[1 2]:d[1 2]+10 

или

d[1 2]:11 12 

Здесь нет никакой реальной необходимости для функционала применяются для изменения значений в словаре.

Смежные вопросы