如何将for循环的输出按索引排序并打印在同一行?
按索引拼接for循环输出并同行打印
当然可以实现,核心思路是按相同索引位置提取每个字符串的字符,依次拼接后整行打印。以下是具体实现方案(以Python为例):
场景模拟
假设你的for循环最终输出的是一个字符串列表,比如:
output_list = ["TAWSG", "HUHWO", "ETOHO", "RHDAD", "EOETI", "IRCID", "SIISE", "NTDAA", "OYE"]
基础实现代码
output_list = ["TAWSG", "HUHWO", "ETOHO", "RHDAD", "EOETI", "IRCID", "SIISE", "NTDAA", "OYE"] result = "" # 取最长字符串的长度,确保覆盖所有索引位置 max_len = max(len(s) for s in output_list) for idx in range(max_len): # 遍历每个字符串,提取对应索引的字符 for s in output_list: if idx < len(s): result += s[idx] # 同行打印结果 print(result)
运行后会输出:THEREISNOAUTHORITYWHODECIDESWHATISAGOODIDEA
简洁写法(利用itertools)
如果想简化代码,可以用itertools.zip_longest处理不同长度的字符串:
from itertools import zip_longest output_list = ["TAWSG", "HUHWO", "ETOHO", "RHDAD", "EOETI", "IRCID", "SIISE", "NTDAA", "OYE"] # 打包所有字符串的对应索引字符,过滤掉短字符串的缺失部分后拼接 result = "".join(char for group in zip_longest(*output_list) for char in group if char is not None) print(result)
逻辑说明
- 外层循环遍历每个索引位置(从0到最长字符串的长度-1);
- 内层循环遍历所有输出字符串,提取当前索引对应的字符;
- 把所有提取的字符按顺序拼接成完整字符串,最后同行打印。
内容的提问来源于stack exchange,提问作者IlllIlII
相关产品推荐
相关产品推荐

