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

为什么Python中for循环只返回首个元素,列表推导式却返回全部元素?

两段代码执行结果差异的核心原因
  • 第一段代码问题出在return的放置位置:
    return被写在了for循环内部,循环第一次迭代处理完('A','a')这组元素后,就会直接执行return返回仅包含'A-a'的列表,函数直接终止运行,不会进入后续遍历('B','b')的迭代步骤,最终自然只能得到单个元素的结果。
    如果要修改第一段代码实现预期效果,需要先声明一个空列表存储所有拼接结果,循环内每次将拼接好的字符串追加到列表中,等循环完全执行结束后再返回这个列表,修改后示例:
    def concatenate(L1,L2,connector):
        result = []
        for word1,word2 in zip(L1,L2):
            result.append(word1+connector+word2)
        return result
    
  • 第二段代码使用的是Python列表推导式语法,它的底层逻辑就是遍历zip(L1,L2)产出的所有元素对,把每一次的拼接结果都收集到新列表中,等所有元素遍历完成后才会返回完整的列表,所以能得到你期望的['A-a', 'B-b']结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:15:00