You need to enable JavaScript to run this app. 为什么for循环无法打印每次执行结果?如何实现每次遍历都打印temp变量?
优惠活动
大模型
产品
解决方案
定价
更多

为什么for循环无法打印每次执行结果?如何实现每次遍历都打印temp变量?

问题原因

你的print语句写在了if判断的代码块内部,只有当两个字符串对比出现不匹配、需要缩短temp的时候才会触发打印。如果当前遍历到的字符串完全包含temp的所有字符,不会进入if代码块,也就不会执行打印操作。
对应你的输入列表,对比fluea和flfjdkl时,两个字符串都完全匹配当前的公共前缀fl,没有触发if逻辑,因此少了两次打印。

修复方法

将print语句移到外层遍历字符串的for循环末尾,每次完成一个字符串的公共前缀对比后,统一打印当前的temp值即可,不需要绑定if触发条件。

修改后的代码如下:

strs = ["flower","flow","flight","fluea","flfjdkl","f"]
temp = strs[0]

for i in range(1, len(strs)):
    for j in range(len(temp)):
        if j >= len(strs[i]) or strs[i][j] != temp[j]:
            temp = temp[:j]
            break
    print(temp)

运行后输出结果和你预期一致:

flow
fl
fl
fl
f

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 17:42:03