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

如何从bowlers列表生成无连续重复的随机重复列表lineup?

Code

我有一个包含6个名字的list,希望将这些名字随机重复生成20次,并保存到名为lineup的list中。但我不希望列表中出现连续重复的名字,例如不希望出现['Shadab', 'Shadab'..]这样的连续重复情况。

我该如何解决这个问题?

我曾尝试将bowlers列表中的名字追加到新列表lineup中,之后通过索引替换重复的名字,但未能成功实现。


解决方法

直接用Python的random模块就能实现,核心逻辑是每次选名字时排除上一次选中的选项,避免连续重复:

import random

# 替换成你的bowlers列表
bowlers = ["Shadab", "Aamir", "Wahab", "Hasan", "Rumman", "Faheem"]
lineup = []

# 先添加第一个随机名字
last_selected = random.choice(bowlers)
lineup.append(last_selected)

# 生成剩下的19个名字
for _ in range(19):
    # 过滤掉上一个选中的名字,从剩余选项里随机选
    candidates = [name for name in bowlers if name != last_selected]
    current = random.choice(candidates)
    lineup.append(current)
    last_selected = current

# 查看结果
print(lineup)

说明

  • 每次选择时都会排除上一个名字,从根源避免连续重复
  • 只要原始bowlers列表长度大于1(你的情况是6个),这个逻辑就能稳定运行
  • 最终lineup的长度刚好是20,完全符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:30:59