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

Python实现列表元素按索引交错拼接字符串的问题排查

问题分析

你的代码存在以下几个明显问题:

  • 索引判断逻辑错误:字符串有效索引范围是0 到 len(字符串)-1,你的判断条件i <= len(source)会导致取到等于字符串长度的索引值,触发越界错误,即使因为浮点数逻辑侥幸运行也会取到错误字符。
  • 索引计数逻辑不合理:使用浮点数累加1/len(sources)的方式计数,不仅写法不规范,还会存在浮点数精度误差,多次累加后int(i)的取值会和预期的整数索引出现偏差。
  • 存在冗余代码:内层for char in source循环没有任何实际作用,进入循环后会直接break,完全可以删除。
  • 增量逻辑混乱:i的增量写在单条字符串处理的分支中,如果某条字符串长度不够跳过处理,会导致i的增长节奏不符合预期。
修正方案

直接使用整数作为当前遍历的索引位,逻辑清晰且不会有精度问题,修正后的代码如下:

def lazy_scribe(sources: list):
    result = ''
    # 先计算所有字符串的最大长度,确定遍历的总轮次
    max_len = max(len(s) for s in sources)
    for k in range(max_len):
        # 每一轮遍历所有字符串,取当前索引位的字符,存在就拼接
        for source in sources:
            if k < len(source):
                result += source[k]
    return result

sources = ["python", "java", "golang"]
print(lazy_scribe(sources))
# 输出结果为:pjgyaotvlhaaonng

修正后代码的运行结果和预期一致,第7位字符为t。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:45:01