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

列表去重
📖 节点概述
去除列表中的重复元素。支持保留原始顺序(默认)或不保留顺序(转换为集合后返回)。输入可以是列表对象、JSON 数组字符串或多行文本(每行一个元素)。输出为去重后的字符串,每行一个元素。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 数据清洗:去除从数据库或用户输入中获取的重复项。
- 集合运算:快速获取唯一值列表(如标签、类别)。
- 统计分析:统计独立值的数量(配合【列表长度】节点)。
- 配置标准化:确保配置列表中的选项唯一(如角色列表、权限列表)。
- 日志去重:去除重复的日志条目,保留不同的错误类型。
🎮 实战连线指南:如何正确使用它?
节点有一个输入端口 列表,一个输出端口 去重后列表,以及一个高级选项“保留顺序”。
场景案例:去除水果列表中的重复项
- 准备列表:在“列表”多行文本框输入:
apple banana cherry banana apple - 保留顺序:勾选(默认),表示保留首次出现的顺序。
- 获取结果:
去重后列表输出:apple banana cherry - 后续使用:可将结果用于展示或进一步处理。
不保留顺序:如果取消勾选“保留顺序”,则输出顺序不确定(例如 ["apple","banana","cherry"] 或 ["cherry","apple","banana"]),但元素唯一。
JSON 数组输入示例:
- 列表:
["apple","banana","cherry","banana"] - 保留顺序:勾选 → 输出
"apple\nbanana\ncherry"。
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 列表 | STRING | 待去重的列表。可以是列表对象、JSON 数组字符串或多行文本(每行一个元素)。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 列表 | 多行文本框 | 手动输入列表内容(每行一个元素,或 JSON 列表)。连线时优先使用连线值。 |
| 保留顺序 | 复选框(高级) | 勾选时(默认)保持元素首次出现的顺序;取消时使用集合去重,顺序不定。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 去重后列表 | STRING | 去重后的字符串,每行一个元素。 |
🔧 行为说明
- 保留顺序模式:使用
set记录已见过的元素,按原顺序依次输出未出现过的元素。时间复杂度 O(n)。 - 不保留顺序模式:将列表转为
set再转回列表,效率高但顺序不确定。适用于不关心顺序的场景。 - 输入解析:通过
_parse_input_as_list支持列表对象、JSON 数组或多行文本。 - 输出始终为字符串(换行分隔),即使原始列表为空也输出空字符串。
⚠️ 注意事项
- 元素类型:列表中的元素支持任意可哈希类型(字符串、数字、元组等),但不能包含不可哈希类型(如列表、字典),否则会引发错误。若需处理嵌套列表,请先使用【列表扁平化】节点。
- 大小写敏感:字符串去重区分大小写(
"Apple"和"apple"视为不同)。 - 输出格式:输出为字符串(每行一个元素),若需要列表格式,可在节点后连接【分割字符串】节点(按
\n分割)。 - 空列表:输入为空列表或空字符串时,输出为空字符串。
- 性能:对于超大列表(数十万项),保留顺序模式占用内存稍高(存储 seen 集合),但仍可接受。
💎 小贴士:
- 如果需要统计去重后的元素数量,可将输出再连接【字符串长度】节点(按行计数)。
- 不保留顺序模式可用于快速获取唯一值集合,然后转为其他用途。
- 结合【列表排序】节点,可以在保留顺序前先排序,实现排序后去重。
- 该节点输出为字符串,便于直接展示或写入文件。若需后续列表操作,建议再通过【分割字符串】转换回列表。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

