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

Python实现:生成指定长度且指定子串无重复的随机图像列表

解决指定子串唯一的随机采样问题

实现思路

不用一次性采样20个再去重替换,而是逐个采样并校验:维护一个记录已出现子串的集合,每次随机选一个元素,检查其指定范围的子串是否已存在,不存在就保留,存在则重新采样,直到列表长度达到20。

完整代码

import random

# 读取主图像列表
with open('Faces/negFaces.txt') as f:
    negFaces = f.read().splitlines()

target_count = 20
image_list1 = []
seen_substrings = set()  # 存储已出现的目标子串

while len(image_list1) < target_count:
    # 随机选取一个候选图像
    candidate = random.choice(negFaces)
    # 提取指定范围的子串(示例为前5个字符[0:5])
    substring = candidate[0:5]
    # 子串未重复则加入结果列表
    if substring not in seen_substrings:
        image_list1.append(candidate)
        seen_substrings.add(substring)

关键说明

  • 使用集合seen_substrings来记录已出现的子串,集合的查询效率远高于列表,能避免重复检查的性能问题
  • 循环逻辑确保最终列表里的每个元素,其指定子串都是唯一的,完全符合需求
  • 如果需要调整子串的范围,只需要修改candidate[0:5]的切片参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:31:13