1

假设我有一个列表(1 3 4),然后1我想插入另一个元素2,导致(1 2 3 4).

如何以通用方式有效地完成这项工作?

4

2 回答 2

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
于 2015-02-18T14:35:42.753 回答
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
于 2015-02-18T10:59:18.240 回答