极奇策RPA技术教程:弹出元素 (NodePopItem) - 自动化开发与配置详细指南

弹出元素
📖 节点概述
从列表或字典中移除并返回指定位置的元素(列表通过索引)或指定键的值(字典)。列表支持正负索引(负索引表示从末尾倒数),字典按键名删除。操作基于原容器的深拷贝,不修改原数据。输出两个结果:被移除的元素和修改后的新容器。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 队列/栈模拟:从列表末尾弹出元素实现栈(后进先出),或从开头弹出实现队列(需索引 0)。
- 键值对消费:从字典中取出某个键的值并同时删除该键,用于任务凭证或配置参数的一次性提取。
- 列表迭代时删除:在需要一边遍历一边删除特定位置元素时,提前获取弹出值并更新列表。
- 数据清洗:移除列表中的首个或末尾元素,并记录移除的内容。
- 动态配置更新:从配置字典中弹出某个配置项,剩余配置继续使用。
🎮 实战连线指南:如何正确使用它?
节点有两个输入端口:容器(列表或字典)和 键/索引(整数索引或字符串键名),以及两个输出端口:被移除元素 和 新容器。
场景案例:从列表中弹出索引 2 的元素
准备容器:在“容器”多行文本框输入 JSON 数组:
["apple", "banana", "cherry", "date"]或从上游传入列表
["apple", "banana", "cherry", "date"]。设置键/索引:输入
2(索引从 0 开始,指向第三个元素 "cherry")。获取结果:
被移除元素输出"cherry"新容器输出["apple", "banana", "date"]
后续使用:可将移除的元素用于其他逻辑,将新容器覆盖原列表变量。
字典弹出示例:
- 容器(JSON 格式):
{"name": "张三", "age": 28, "city": "北京"} - 键/索引:
"age" - 结果:
- 被移除元素:
28 - 新容器:
{"name": "张三", "city": "北京"}
- 被移除元素:
负索引列表示例:
- 列表:
[10, 20, 30, 40] - 键/索引:
-1(尾部的一个元素) - 被移除元素:
40 - 新容器:
[10, 20, 30]
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 容器 | LIST / DICT / STRING | 要操作的列表或字典。支持列表对象、字典对象、JSON 字符串(如["a","b"] 或 {"k":"v"})或多行文本(按行拆分为列表)。 |
| 键/索引 | STRING | -列表:要弹出元素的位置索引(整数,支持负数,默认为 -1)。<br>- 字典:要删除的键名(字符串)。 |
⚙️ 控件参数
| 控件名称 | 类型 | 说明 |
|---|---|---|
| 容器 | 多行文本框 | 手动输入列表或字典(JSON 格式,或多行文本)。连线时优先使用连线值。 |
| 键/索引 | 单行文本框 | 手动输入索引(列表)或键名(字典)。 |
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 被移除元素 | ANY | 被弹出/删除的元素值。若操作失败(如索引越界、键不存在、容器无效),返回None。 |
| 新容器 | LIST / DICT | 弹出元素后的新列表或新字典(基于原容器的深拷贝)。如果原容器无效,返回空列表[]。 |
🔧 行为说明
- 输入容器会被深拷贝(
copy.deepcopy),因此原数据不会被修改。 - 列表操作:使用
list.pop(index),支持负数索引。如果索引无效或越界,被移除元素为None,新容器与原列表相同。 - 字典操作:使用
dict.pop(key, None),如果键不存在,被移除元素为None,新容器与原字典相同。 - 如果输入既不是列表也不是字典(例如纯字符串且无法解析为 JSON),输出为
被移除元素 = None,新容器 = []。 - 输出端口“新容器”的类型会根据实际容器类型动态变化(列表或字典)。
⚠️ 注意事项
- 深拷贝开销:对于大型列表或字典,深拷贝可能会消耗较多内存和时间。若不需要保留原数据,可考虑直接操作原变量(但本节点设计为无副作用,建议接受此开销)。
- 索引默认值:如果“键/索引”输入为空(未填写),列表默认弹出尾部的一个元素(索引 -1);字典默认不弹出任何键(返回 None)。
- 键/索引的解析:列表时会将输入转换为整数;字典时直接作为字符串键名。如果列表输入
"abc"无法转为整数,操作失败。 - 输出类型动态变化:“新容器”在编辑器中可能显示为
LIST或DICT,运行时会根据实际结果调整,下游节点应适应这种变化。 - 多行文本输入:如果容器输入为多行纯文本(非 JSON),会按行拆分为字符串列表。此时“键/索引”应为整数索引。
💎 小贴士:
- 若只需要获取元素而不想修改容器,可使用【列表索引查找】或【从列表获取一个元素】节点。
- 若要删除但不关心被移除的值,可使用【列表移除】(按值)或【列表删除】(按索引,但本节点也适用)。
- 字典弹出常用于“消费”配置项:先弹出某个键,剩余配置继续传递。
- 由于输出两个结果,可使用【变量设置】节点分别存储被移除元素和新容器。
- 该节点是纯数据节点,无需执行信号,可在数据流中随时使用。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

