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

Python如何在for循环执行结束后返回整合后的汇总结果列表?

问题原因

你当前代码的核心问题是resLst的初始化位置写在了for循环内部,每次遍历列表元素时都会重置成空列表,同时每次循环结束就直接打印,最终才会输出多个独立的单元素列表。


修正方案

把resLst移到for循环外部初始化,所有元素的差异值计算完成后再统一打印即可,修改后的代码如下:

lst1 = ["31245", "12354", "15342", "12543"]
str1 = "12345"

resLst = [] # 列表初始化移到循环外部
for ele in lst1:
    count = 0
    i = 0
    while i < len(str1) :
        if ele[i] != str1[i] :
            count += 1  
        i += 1 
    resLst.append(count)
print(resLst) # 所有元素计算完成后统一打印

运行后输出结果就是你需要的[3, 2, 2, 2]。


可选简化写法

你也可以用zip配对两个字符串的同位置字符,用更简洁的写法实现相同逻辑:

lst1 = ["31245", "12354", "15342", "12543"]
str1 = "12345"
resLst = [sum(a != b for a, b in zip(ele, str1)) for ele in lst1]
print(resLst)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:24:03