2015-02-18 2 views

ответ

0

Я думаю, вы должны быть более конкретными о том, что вы хотите, но сейчас вот пример того, как можно достичь этого

q)list:1 3 4 
q)list 
1 3 4 
q)list: asc list,:2 
q)list 
`s#1 2 3 4 

Или другой путь, скажем, вы знаете индекс, на котором вы хотите чтобы добавить элемент в список, в данном случае с индексом 1, то вы можете создать функцию как таковую:

q)add:{[lst;ele;ind] (ind#lst),ele,(ind _ lst)} 
q)list:1 3 4 
q)add[list;2;1] 
1 2 3 4 
1

альтернативный подход, который позволяет несколько вставок одновременно.

Если индексы индексировать первоначальный список:

q){raze cut[(0,z);x],'(y,enlist())}[til 10;999 998 994;2 4 8] 
0 1 999 2 3 998 4 5 6 7 994 8 9 

Если индексы индексировать последовательные итерации списка:

q){raze cut[(0,z);x],'(y,enlist())}/[til 10;999 998 994;2 4 8] 
0 1 999 2 998 3 4 5 994 6 7 8 9 
Смежные вопросы