在线提交需求

请留下您的联系方式,我们的专家将在 24 小时内与您沟通。

极奇策RPA技术教程:随机打乱列表 (NodeShuffleList) - 自动化开发与配置详细指南

极奇策技术团队更新于 2026-08-260 阅读

image.png

随机打乱列表

📖 节点概述

随机打乱列表中元素的顺序(Fisher-Yates shuffle 算法)。输入可以是列表对象、JSON 数组字符串或多行文本(每行一个元素)。每次求值都会产生不同的随机顺序(除非设置了随机种子)。原列表保持不变,返回打乱后的新列表。该节点为纯数据节点,无执行端口。

💡 使用场景

  • 随机抽样前的准备:打乱列表后再取前 N 个,实现简单的不重复随机抽样。
  • 游戏随机性:随机排序玩家列表、抽奖名单或卡牌顺序。
  • 数据匿名化:打乱原始数据顺序,避免顺序偏差。
  • 训练/测试集分割:随机打乱数据集后,再按比例切分。
  • 任务队列随机化:将待处理任务列表随机排序,避免饿死或偏向。

🎮 实战连线指南:如何正确使用它?

节点有一个输入端口 列表 和一个输出端口 打乱后的列表

场景案例:随机打乱水果列表

  1. 准备列表:在“列表”多行文本框输入:

    apple
    banana
    cherry
    date
    

    或从上游传入列表 ["apple", "banana", "cherry", "date"]

  2. 获取结果:每次执行,打乱后的列表 会输出一个随机顺序的新列表,例如 ["cherry", "apple", "date", "banana"]

  3. 后续使用:将打乱后的列表用于抽奖、随机展示等。

JSON 数组示例

  • 列表:[1, 2, 3, 4, 5]
  • 可能输出:[3, 1, 5, 2, 4]

空列表处理

  • 如果列表为空,输出为空列表 []

⚙️ 引脚与参数说明

📥 输入引脚

引脚名称数据类型说明
列表LIST / STRING待打乱的列表。可以是列表对象、JSON 字符串(如["a","b"])或多行文本(每行一个元素)。

⚙️ 控件参数

控件名称类型说明
列表多行文本框手动输入列表内容(每行一个元素,或 JSON 列表)。连线时优先使用连线值。

📤 输出引脚

引脚名称数据类型说明
打乱后的列表LIST随机打乱顺序后的新列表(原列表不会被修改)。

🔧 行为说明

  • 打乱算法为 Python 标准库的 random.shuffle(),在原列表副本上操作,不修改输入。
  • 随机性基于 Python 的 random 模块,默认种子为系统时间。如需可重复的随机结果,请在流程开始时使用【随机种子】节点固定种子。
  • 输入列表的解析方式与【列表反转】等节点一致,支持列表对象、JSON 数组、多行文本。

⚠️ 注意事项

  • 原列表不变:节点返回打乱后的新列表,不会修改原输入列表。
  • 随机性:每次运行(甚至同一次运行中的多次求值)结果都可能不同。如需可重复的打乱顺序,请先设置随机种子。
  • 空列表:输入为空列表时,输出也为空列表。
  • 单元素列表:打乱后仍为相同列表(顺序不变)。
  • 性能:打乱操作时间复杂度 O(n),n 为列表长度。
  • 类型保留:列表元素类型在打乱后保持不变。

💎 小贴士

  • 如果需要随机抽取一个元素而不打乱整个列表,可使用【列表随机抽取一个】节点。
  • 打乱后配合【列表截取】可以实现不重复随机抽样(如打乱后取前 5 个)。
  • 若需要多次打乱并得到相同顺序(如测试场景),请在流程开头连接【随机种子】节点并设置固定整数种子。
  • 由于是纯数据节点,无需执行信号,可在数据流中随时调用。
助理
咨询
微信
微信客服扫码添加微信
社群
QQ群扫码加入Q群
电话
免费咨询热线0371-67993886
顶部