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

如何生成含重复字符串与空白字符串的随机字符串

实现带重复和空白的随机字符串生成

要实现你需要的效果,核心是维护一个已生成字符串的缓存池,同时通过概率控制随机选择生成新字符串、复用已有字符串或者生成空白字符串。以下是修改后的代码:

import random
import string
import numpy as np

def randomGenerator(length):
    return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(length))

# 初始化存储已生成字符串的池
generated_strings = []
# 设定三种行为的概率权重:生成新字符串、复用已有、生成空白
# 权重可按需调整,random.choices会自动做归一化处理
action_weights = [6, 2, 2]

for _ in range(16):
    # 随机选择本次执行的操作
    action = random.choices(
        ['new', 'repeat', 'blank'],
        weights=action_weights
    )[0]
    
    if action == 'new':
        new_str = randomGenerator(8)
        generated_strings.append(new_str)
        current_str = new_str
    elif action == 'repeat' and generated_strings:
        # 仅当池中有字符串时才执行复用操作
        current_str = random.choice(generated_strings)
    else:
        # 生成与随机字符串长度一致的空白字符串
        current_str = ' ' * 8
    
    mat = np.array([[current_str]])
    print(mat)

关键逻辑说明:

  • 字符串缓存池:generated_strings用来保存已生成的随机字符串,后续可从中随机选取实现重复效果
  • 概率调控:通过random.choices的weights参数调整三种行为的出现频率,示例设置为60%概率生成新字符串、20%复用已有字符串、20%生成空白
  • 空白字符串生成:直接用' ' * 8生成指定长度的空白,保证和随机字符串长度统一

运行这段代码后,输出会包含重复字符串和空白项,与你期望的效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:09:21