假设我有一个列表(1 3 4)
,然后1
我想插入另一个元素2
,导致(1 2 3 4)
.
如何以通用方式有效地完成这项工作?
另一种方法允许一次插入多个。
如果索引要索引原始列表:
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
我认为你需要更具体地说明你想要什么,但现在这里有一个例子来说明你如何实现它
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