You need to enable JavaScript to run this app. Python实现带字符串校验的无定长主题字符串列表创建问题
优惠活动
大模型
产品
解决方案
定价
更多

Python实现带字符串校验的无定长主题字符串列表创建问题

代码问题分析与修正方案

现有代码的缺陷

  • 硬编码循环次数为5,无法支持无固定长度的输入收集
  • if planets == str(planets) 逻辑完全冗余:input() 原生返回字符串,该判断永远为真,无任何校验作用
  • 未设置终止触发条件,必须输满5次才能结束流程,不符合用户自定义结束的需求

修正后实现代码

# 可自定义修改的配置
COLLECT_TARGET = "行星"  # 要收集的主题
END_KEYWORD = "quit"     # 终止输入的标识

result_list = []
# 提前告知用户输入规则
print(f"请输入{COLLECT_TARGET}名称,每输完一项按回车,输入{END_KEYWORD}即可结束收集:")

while True:
    # 去除输入前后的多余空格,避免误判
    current_input = input().strip()

    # 触发终止条件直接跳出收集循环
    if current_input == END_KEYWORD:
        break

    # *如果不需要去重,直接删除下方的if判断,直接执行append即可
    if current_input not in result_list:
        result_list.append(current_input)
    else:
        print(f"该{COLLECT_TARGET}已存在,未重复添加")

# 输出最终结果
print(f"\n你收集的{COLLECT_TARGET}列表为:")
print(result_list)

代码符合需求的特性

  • 无硬编码容量:只要不输入终止关键词,可无限添加输入项
  • 输入规则明确:启动后第一时间告知用户收集主题、输入方式、终止条件
  • 无无效校验逻辑:删除了冗余的字符串判断,新增了入参去空格的实用处理
  • 灵活适配需求:需要保留所有重复输入时,删除去重判断即可实现“每一条非终止输入对应列表一个元素”的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 09:45:08