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

如何从列表中各单词的对应位置字母构建目标字符串?

问题解决:按位置提取单词字符构建字符串

原代码问题分析

你的代码存在两个核心问题:

  1. 外层循环范围错误:你用range(len(my_list))仅循环3次(对应列表元素个数),但最长单词father长度为6,需要循环6次才能覆盖所有字符位置,这直接导致输出缺少了后面的dher部分。
  2. 未处理索引越界风险:当循环到超过短单词长度的位置时(比如i=3时,bad只有3个字符),直接取my_list[j][i]会触发索引错误,同时也不符合只提取存在字符的需求。

修正后的代码

def letters(my_list):
    string = ''
    # 获取列表中最长单词的长度,作为外层循环的次数
    max_len = max(len(word) for word in my_list)
    # 遍历每个字符位置
    for i in range(max_len):
        # 遍历每个单词,提取对应位置的字符(如果存在)
        for word in my_list:
            if i < len(word):
                string += word[i]
    return string

print(letters(['good', 'bad', 'father']))  # 输出:gbfoaaodtdher

代码说明

  • 先通过max(len(word) for word in my_list)获取最长单词的长度,确保外层循环能覆盖所有需要提取的字符位置。
  • 内层循环遍历每个单词时,先判断当前位置i是否在单词的长度范围内,避免索引越界的同时,只提取存在的字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:12:02