极奇策RPA技术教程:列表排序 (NodeListSort) - 自动化开发与配置详细指南

列表排序
📖 节点概述
对列表中的元素进行排序。支持升序或降序。输入可以是列表对象、JSON 数组字符串或多行文本(每行一个元素)。当列表中包含不可直接比较的混合类型时,节点会自动将所有元素转换为字符串后再排序。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 数据展示整理:将用户列表、商品列表等按名称或 ID 排序后再显示。
- 日志分析预处理:将时间戳或错误码排序,便于趋势分析。
- 配置标准化:将配置文件中的选项列表按字母顺序排列,提高可读性。
- 去重前排序:排序后可更方便地通过相邻元素比较去除重复。
- 优先级队列:将任务按优先级数字排序后,依次处理。
🎮 实战连线指南:如何正确使用它?
节点有一个输入端口 列表,一个下拉选择“顺序”,输出端口 排序后列表。
场景案例:对水果列表进行升序排序
准备列表:在“列表”多行文本框输入:
banana apple cherry或从上游传入列表
["banana","apple","cherry"]。选择顺序:
升序 (A→Z)(默认)。获取结果:
排序后列表输出["apple", "banana", "cherry"]。后续使用:将排序后的列表用于展示或进一步处理。
降序示例:
- 列表:
[3, 1, 4, 1, 5] - 顺序:
降序 (Z→A) - 结果:
[5, 4, 3, 1, 1]
混合类型处理:
- 列表:
[5, "apple", 2] - 由于整数和字符串无法直接比较,节点会将所有元素转为字符串:
["5", "apple", "2"],然后排序(字典序):- 升序 →
["2", "5", "apple"] - 降序 →
["apple", "5", "2"]
- 升序 →
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 列表 | LIST / STRING | 待排序的列表。可以是列表对象、JSON 字符串(如["a","b"])或多行文本(每行一个元素)。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 列表 | 多行文本框 | 手动输入列表内容(每行一个元素,或 JSON 列表)。连线时优先使用连线值。 |
| 顺序 | 下拉选择 | •升序 (A→Z):从小到大/字母顺序。<br>• 降序 (Z→A):从大到小/字母逆序。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 排序后列表 | LIST | 排序后的新列表(原列表不会被修改)。 |
🔧 排序规则
- 对于可比较的元素(如同为数字、同为字符串、同为元组等),使用 Python 默认的比较规则(数字按数值,字符串按字典序)。
- 当列表包含不可直接比较的混合类型时(如数字和字符串混合),节点会捕获
TypeError,将所有元素转换为字符串后再排序(此时按字符串字典序,例如"2"<"10"是按首字符比较的)。 - 排序是稳定排序:如果两个元素相等,它们在输出列表中的相对顺序与原始顺序相同。
⚠️ 注意事项
- 原列表不变:节点返回排序后的新列表,不会修改输入列表。
- 字符串排序:数字以字符串形式排序时可能不符合数值预期(例如
"10"会排在"2"前面,因为"1"<"2")。如需数值排序,请确保列表元素均为数字类型,或先通过【类型转换】节点统一转换。 - 混合类型回退:当列表包含无法直接比较的类型(如
None与数字),Python 会抛出TypeError。此时节点会转为字符串排序,结果可能非预期,建议在排序前统一元素类型。 - JSON 输入:使用 JSON 数组字符串时,元素类型会被解析为对应的 JSON 类型(数字、字符串、布尔等),排序按原生类型进行。
- 空列表:输入为空列表时,输出也为空列表。
- 性能:排序时间复杂度 O(n log n),对于大型列表可接受。
💎 小贴士:
- 排序后常常结合【列表去重】节点,先排序再去重可以保留唯一值(尤其是相邻相同值)。
- 若需要按自定义规则排序(如按字符串长度、按对象属性),可使用【列表操作】中的高阶节点或表达式节点。
- 该节点输出为列表,可直接连接【列表截取】获取前几名(Top N)。
- 由于是纯数据节点,无需执行信号,可在数据流中随时使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

