remove!

语法

remove!(obj, index)

详情

删除向量或元组指定位置的元素,并直接修改原对象。

相较于 drop, pop!, removeHead!, removeTail! 等函数,remove! 更灵活,它支持删除任意位置的元素,而其他函数仅支持删除首部或尾部的元素。

参数

obj 向量、数组向量、元组或列式元组。表示要删除元素的目标对象。

index 整型标量或向量,表示要删除的元素索引(从0开始编号)。索引范围为 [0, obj.size())。如果为向量,索引值必须严格升序。

返回值

返回删除指定元素后的对象,类型和形式同 obj

例子

删除常规向量的指定元素。

v = 1..10
remove!(v, 2)  // v 变为 [1,2,4,5,6,7,8,9,10]

// 基于上一步的结果继续执行
remove!(v, [1,3,5])   // v 变为 [1,4,6,8,9,10]

删除数组向量的指定元素。

av = array(DOUBLE[], 0, 10).append!([[1.1,2.2], [3.3,4.4,5.5], [6.6], [7.7,8.8,9.9,10.0]])
remove!(av, 1)   // av 变为 [[1.1,2.2], [6.6], [7.7,8.8,9.9,10.0]]

// 基于上一步的结果继续执行
remove!(av, [0,2])   // av 变为 [[6.6]]

删除常规元组的指定元素。

tp = (1, `AAPL, 3.14, 2023.01.01)
remove!(tp, 2)  // tp 变为 (1, `AAPL, 2023.01.01)

// 基于上一步的结果继续执行
remove!(tp, [0,2]) // tp 变为 (`AAPL)

删除列式元组的指定元素。

ctp = [[1,2,3], [4,5,6], [7,8], [9,2]].setColumnarTuple!()
remove!(ctp, 1)
// ctp 变为 [[1,2,3], [7,8], [9,2]]

// 基于上一步的结果继续执行,删除多个元素
remove!(ctp, [0,1])
// ctp 变为 [[9,2]]

相关函数:droppop!removeHead!removeTail!