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

如何解决Python脚本生成重复句子的问题?

解决重复句子生成问题的修正方案

你的代码存在几个关键逻辑错误,导致无法生成完全不重复的句子:

  • 初始时将空字符串加入sentence_list,引入无效数据
  • while循环仅检查当前句子与前一句是否相同,未覆盖所有已生成句子的查重
  • 生成新句子时仅尝试一次,未循环直到找到唯一句子
  • 存在拼写错误:prevoius_sentence应为previous_sentence
  • 全局变量的使用增加了代码复杂度,逻辑分支混乱

以下是修正后的代码,采用集合存储已生成句子(集合的成员查询效率远高于列表),确保所有生成的句子唯一:

import random

def generate_unique_sentences(count):
    names = ["x", "y", "z"]
    descriptions = ["a", "b", "Dc"]
    used_sentences = set()
    sentences = []
    
    while len(sentences) < count:
        name = random.choice(names)
        desc = random.choice(descriptions)
        new_sentence = f"{name} is a {desc}"
        
        if new_sentence not in used_sentences:
            used_sentences.add(new_sentence)
            sentences.append(new_sentence)
    
    return sentences

# 注意:当前词库最多只能生成3*3=9种不同句子,超过9个会进入无限循环
for sentence in generate_unique_sentences(9):
    print(sentence)

关键改进说明:

  1. 集合存储已生成句子:集合的in操作时间复杂度为O(1),比列表的O(n)更高效,适合频繁查重场景
  2. 循环生成直到满足数量要求:每次生成新句子后检查是否已存在,仅当唯一时才加入结果列表
  3. 封装变量逻辑:将所有相关变量封装在函数内部,代码更清晰、可维护
  4. 明确词库上限:你的名字和描述组合最多只能生成9种不同句子,若需要更多句子,需扩充names或descriptions列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:40:16