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

Python首字母缩写生成脚本问题:功能异常且效率待优化

解决首字母缩写词生成脚本的异常与效率问题

原代码存在的问题

  • 索引越界+条件逻辑错误:当i=1时,stng[i-2]会访问索引-1,直接触发IndexError;同时判断空格的逻辑错误,应该检查前一个字符是否为空格(stng[i-1] == ' '),而非判断空字符串''。
  • 未支持多输入列表:原代码仅处理单个字符串输入,不符合需求中“以列表形式接收多个字符串”的要求。
  • 效率低下:手动逐个字符遍历拼接的方式冗余,且字符串+=操作因不可变特性会频繁生成新对象,影响性能。

优化后的解决方案

以下代码完全满足需求,同时解决了异常问题并提升了效率:

def generate_acronyms(strings_list):
    acronyms = []
    for s in strings_list:
        # 按空格分割成单词列表,自动忽略连续空格
        words = s.split()
        # 处理空字符串或全空格的边界情况
        if not words:
            acronyms.append("")
            continue
        # 提取每个单词首字母并转为大写,拼接成缩写
        acronym = ''.join(word[0].upper() for word in words)
        acronyms.append(acronym)
    return acronyms

# 示例使用:支持用户输入多个句子(逗号分隔)
if __name__ == "__main__":
    user_input = input("请输入多个句子,用逗号分隔:")
    input_list = [sentence.strip() for sentence in user_input.split(',')]
    results = generate_acronyms(input_list)
    # 输出每个句子对应的缩写
    for original, acronym in zip(input_list, results):
        print(f"'{original}' -> {acronym}")

优化点说明

  1. 高效的单词分割:使用内置split()方法分割字符串,底层经过优化,比手动遍历字符快得多,还能自动处理连续空格的情况。
  2. 高效字符串拼接:用生成器表达式结合join()方法拼接字符,避免了+=操作的频繁内存分配,性能更优。
  3. 边界情况处理:针对空字符串、全空格的输入做了兼容,不会触发索引错误。
  4. 满足多输入需求:直接接收字符串列表作为参数,批量生成缩写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:25:54