You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打乱列表内的元素配对?适用于XGBoost任务

简洁化部分反转配对列表的实现

核心优化方案

针对你的需求(为XGBoost任务随机反转部分姓名配对的顺序),可以利用列表推导式结合更直观的概率判断来简化代码,同时提升效率:

import random

# 输入示例
tlist = [['A1', 'B1'], ['A2', 'B2'], ['A3', 'B3'], ['A4', 'B4'], ['A5', 'B5'], ['A6', 'B6'], ['A7', 'B7'], ['A8', 'B8']]

# 简洁实现:约1/3概率反转配对
tlist_rand = [pair[::-1] if random.random() < 1/3 else pair for pair in tlist]

关键改进点

  • 更高效的反转操作:因为每个配对固定是2个元素,用pair[::-1]直接反转比random.sample(pair, len(pair))更简洁高效
  • 直观的概率控制:random.random() < 1/3 直接明确控制反转概率为1/3,替代原代码中通过随机数取模的间接判断
  • 精简代码结构:列表推导式将循环和条件判断压缩为一行,减少冗余变量和重复赋值

兼容原逻辑的简化版本

如果需要完全匹配原代码中“每次判断都生成新随机数”的逻辑,也可以简化为:

import random

tlist_rand = []
for pair in tlist:
    tlist_rand.append(pair[::-1] if random.randint(0, 1000) % 3 == 0 else pair)

这个版本去掉了重复的rand_number变量声明,直接在条件判断中生成随机数,消除冗余代码。

内容的提问来源于stack exchange,提问作者jndnd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:54:58