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

程序返回空列表问题:无法找出输入字符串中缺失的字母

问题分析与修复方案

你的代码有两个关键问题导致结果异常:

  • return语句位置错误:把return missing放在了for循环内部,函数执行第一次循环就直接返回,根本没完成后续遍历逻辑。
  • 逻辑方向搞反:当前代码是遍历输入字符串,把不在小写字母表里的字符加入missing,这和你要找「输入字符串中未出现的小写字母」的需求完全相反。

修复后的代码如下:

import string
def get_missing_letters(s):
    missing = []
    # 将输入字符串转为集合,提升查找效率
    s_chars = set(s.lower())  # 若不需要兼容大写输入,可去掉lower()
    alphabet = string.ascii_lowercase
    # 遍历完整小写字母表,检查每个字母是否未出现在输入字符串中
    for letter in alphabet:
        if letter not in s_chars:
            missing.append(letter)
    return missing

print(get_missing_letters("abcdefgpqrstuvwxyz"))  # 输出 ['h', 'i', 'j', 'k', 'l', 'm', 'n', 'o']

修复说明:

  1. 将return移至for循环外,确保遍历完所有字母后再返回结果。
  2. 切换遍历对象:遍历完整小写字母表,而非输入字符串,匹配需求逻辑。
  3. 用集合存储输入字符,in操作的效率远高于列表,适合字符串较长的场景。
  4. 可选的lower():若输入可能包含大写字母,转小写后可避免漏判。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:48:13