按照索引对元素重新排序

功能描述

根据提供的索引映射关系,对输入数据进行重新排列。支持多层嵌套数据结构的重排序操作。

ReorderByIndexList

使用场景

按照输入的索引,对原始数据重新排序。通常在“排序”类步骤后使用。

输入

  • 映射索引(必连):指定指示排序顺序的索引列表。

  • 未命名(必连):需要重新排序的数据(支持1~16组数据并行输入)。

输出

  • 未命名:按照索引映射排列后的数据。

参数说明

  • 端口个数(1~16)

    支持多组数据同时重排序,所有端口使用相同的索引映射关系。范围:1~16。

  • 操作层

    指定重排序操作作用于数据的操作层层数。

    对于NumberList、StringList、Vector3DList、BoolList、IndexList 这类数据结构,其操作层介绍如下:

    [第1层 [第0层 xx,xx,xx...],[第0层 xx,xx,xx...] ]

    对于PoseList,其操作层介绍如下:

    [第1层 [第0层[x,y,z,qx,qy,qz,w]],[第0层[x,y,z,qx,qy,qz,w]] ]

示例

操作层 = 0(默认)

对列表中的子项进行重排序。

输入

  • 原始数据: [['A', 'B', 'C'], ['D', 'E', 'F']]

  • 索引: [[2, 0, 1],[2, 0, 1]]

输出

  • [['C', 'A', 'B'], ['F', 'D', 'E']]

操作层 = 1

对第1层列表进行重排序。

输入

  • 原始数据: [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]

  • 索引: [2, 0, 1]

输出

  • [['G', 'H', 'I'], ['A', 'B', 'C'], ['D', 'E', 'F']]

操作层 = 2

对第2层列表进行重排序。

输入

  • 原始数据: [[['A','B'], ['C','D']], [['E','F'], ['G','H']]]

  • 索引: [1, 0]

输出

  • [[['E','F'], ['G','H']], [['A','B'], ['C','D']]]