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

Python如何将列表推导式改写为等效的普通for循环代码

问题原因

你编写的循环逻辑和原列表推导式不等效,问题出在元素追加环节:原列表推导式每次将(p, e)组成的元组作为单个元素存入列表,而你的代码是将p、e作为两个独立的元素依次追加,最终自然会得到扁平化的一维列表。
另外注意你循环中使用的predicted、expected要和实际传入的变量名匹配,如果你实际定义的变量是原代码里的pred、exp,要对应修改避免变量不存在报错。

修正后的代码

correct = []
# 若你实际使用的变量名是predicted、expected,把zip里的参数换成对应变量即可
for (p, e) in zip(pred, exp):
    if p != e:
        # 直接追加p、e组成的元组,和列表推导式逻辑完全一致
        correct.append( (p, e) )
print(correct)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:54:05