说我有一个列表(1 3 4)
,在1
之后我要插入另一个元素2
,结果为(1 2 3 4)
。
如何以通用方式有效地完成这项工作?
答案 0 :(得分: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
答案 1 :(得分: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