极奇策RPA技术教程:Zip 并行打包 (NodeZip) - 自动化开发与配置详细指南

Zip 并行打包
📖 节点概述
将多个列表按位置并行打包,生成一个元组列表(每个元组转换为列表)。结果列表的长度等于输入列表中较短的那个(类似于 Python 的 zip 函数)。支持动态增减输入端(右键菜单),至少 2 个列表。该节点为纯数据节点,无执行端口。
💡 使用场景:
- 数据对齐:将两个长度不同的列表对齐,只处理共有位置的数据。
- 成对迭代:将两个列表(如姓名列表和年龄列表)合并成
[["张三",25], ["李四",30]]方便遍历。 - 矩阵转置准备:将多个行列表转换为列列表的中间步骤。
- 批量参数组合:将多个平行数据源(如 ID 列表、名称列表、价格列表)合并成一条记录列表。
- 列表字典转换:将 key 列表和 value 列表组合成字典结构(需配合其他节点)。
🎮 实战连线指南:如何正确使用它?
节点通过动态端口接收至少 2 个列表,按位置配对输出新的列表。
场景案例:将姓名列表和年龄列表合并为人员记录
- 准备数据:
姓名列表=["张三", "李四", "王五"]年龄列表=[25, 30, 28]
- 连接节点:
- 右键单击【Zip 并行打包】节点,确保有 2 个输入端口(默认)。
- 将姓名列表连入
列表 1,年龄列表连入列表 2。
- 获取结果:
配对列表输出[["张三", 25], ["李四", 30], ["王五", 28]]。 - 后续使用:可遍历此列表,每条记录进行进一步处理。
长度不等处理:
列表 1=[1, 2, 3]列表 2=["a", "b"]- 结果 =
[[1, "a"], [2, "b"]](第三个元素因列表2没有对应值而被忽略)。
三个列表示例:
[1,2],["a","b"],[True,False]→[[1,"a",True], [2,"b",False]]。
⚙️ 引脚与参数说明
📥 输入引脚(动态)
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 列表 1, 列表 2, ... | LIST | 待打包的列表。至少 2 个,可通过右键菜单动态增删。每个端口接受任意类型的列表(元素类型不限)。 |
⚙️ 控件参数
无固定控件(动态端口无控件)。
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 配对列表 | LIST | 结果列表,每个元素是一个列表,包含来自每个输入列表的对应位置元素。长度等于、较短输入列表的长度。 |
🔧 行为说明
- 按位置匹配:首个输入列表的第 i 个元素,与第二个输入列表的第 i 个元素,以此类推,组成新列表。
- 截断规则:如果输入列表长度不同,结果以较短的列表为准,多余元素被忽略。
- 元素类型:输出列表中的子列表元素类型与输入对应位置的元素类型保持一致。
- 空列表处理:如果某个输入列表为空,则结果为空列表。
⚠️ 注意事项
- 动态端口管理:右键单击节点可添加或删除输入端口。至少 2 个。
- 幽灵端口:当增加端口后未连线,该端口会被自动忽略,不影响结果。
- 列表元素类型:输入列表可以包含任意类型的元素(数字、字符串、布尔、字典等),输出时原样保留。
- 性能:打包操作的时间复杂度为 O(k * n),其中 k 为输入列表个数,n 为较短列表长度。
- 不是笛卡尔积:该节点做的是并行打包(zip),而非组合所有可能(笛卡尔积)。如需笛卡尔积,请使用【列表叉积】节点。
💎 小贴士:
- 将输出的配对列表再配合【遍历列表】节点,可以方便地同时处理多个相关数据。
- 如果需要将配对结果转为字典(首列为 key,第二列为 value),可以使用【列表转字典】节点。
- 如需按较长列表打包(缺失值用 None 填充),可以使用【列表操作】中的自定义函数或编写表达式节点。
- 该节点是数据处理流程中常见的“列转行”操作,适合表格数据的行列转换。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

