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

Python嵌套循环仅返回首个匹配字符的问题咨询

问题根因

你没有理解错Python的循环运行机制,问题出在return语句的缩进位置错误:
当前return letters_in_common被放在了内层if判断的代码块中,只要第一次匹配到相同字符(也就是hello的第一个字符h和loha中的h匹配成功),就会立刻执行return终止整个函数,外层和内层的后续循环都不会继续执行,所以只会返回['h']。
你觉得JS同类循环可以执行完所有迭代,大概率是你之前写JS代码时,把return放在了所有循环结束后的位置,而非匹配逻辑内部。

修正方案

把return语句调整到和外层for循环同级的位置,等所有循环迭代执行完毕再返回结果即可,修正后的代码如下:

def common_letters(string_one,string_two):
    letters_in_common = []
    for letter in string_one:
        for letter2 in string_two:
            if letter == letter2:
                letters_in_common.append(letter)
                # 匹配到后跳出内层循环,避免第二个字符串存在重复字符时重复追加
                break
    # 所有循环执行完成后再返回结果
    return letters_in_common

returned = common_letters("hello", "loha")
print(returned)

运行上述代码输出结果为['h', 'l', 'l'],符合你的预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:12:02