Python如何按字符位置拼接字符串列表得到完整结果
问题原因
原代码两层循环的终止条件都使用了len(a)(值为3,是列表的元素个数),导致外层循环仅遍历0、1、2三个字符索引,仅取到每个字符串的前3位字符拼接,因此只能输出不完整的结果。
修复代码
外层循环的终止条件需替换为单个字符串的长度(本题中三个字符串长度均为9,取任意一个的长度即可),内层保持遍历列表的所有元素:
a = ["cypatlyrm","aolsemone","nueeleuap"] res = "" # 外层遍历每个字符的位置索引 for i in range(len(a[0])): # 内层遍历列表中的每个字符串,取对应位置的字符 for j in range(len(a)): res += a[j][i] print(res)
运行后即可得到预期输出canyoupleasetellmeyournamep。
通用兼容方案
如果列表中字符串长度不一致,可按最长字符串的长度遍历,避免索引溢出:
a = ["cypatlyrm","aolsemone","nueeleuap"] res = "" max_length = max(len(s) for s in a) for i in range(max_length): for s in a: # 仅当当前索引小于字符串长度时才取字符 if i < len(s): res += s[i] print(res)
内容的提问来源于stack exchange,提问作者newuser
相关产品推荐
相关产品推荐

