多列表元素按对应行合并(制表符分隔)打印技术问询
解决多文件行对应位置制表符合并问题
这问题我太熟了,用Python的itertools.zip_longest就能完美搞定!它专门处理这种不同长度序列的对齐合并,自动给短序列补空,完全符合你的需求。
具体实现代码
from itertools import zip_longest # 你的示例数据 Final_List = [['line1', 'line2', 'line3'], ['line1', 'line2', 'line3'], ['line1', 'line2', 'line3', 'line4']] # 遍历对齐后的元素组,转成制表符分隔的字符串打印 for aligned_parts in zip_longest(*Final_List, fillvalue=''): print('\t'.join(aligned_parts))
代码解释
zip_longest(*Final_List):把每个子列表的对应位置元素打包成元组,比如第一个元组是三个子列表的第一个元素('line1', 'line1', 'line1'),最后一个元组是('', '', 'line4')——因为前两个子列表没有第4个元素,自动用fillvalue指定的空字符串补齐。'\t'.join(aligned_parts):把每个元组里的元素用制表符\t连接成字符串,直接打印就得到你要的格式。
运行输出
line1 line1 line1 line2 line2 line2 line3 line3 line3 line4
如果不想用itertools,也可以手动先找到最长子列表的长度,再循环每个位置去取元素(没有就补空),但显然zip_longest更简洁高效,推荐用这个方法~
内容的提问来源于stack exchange,提问作者Nauman Shahid
相关产品推荐
相关产品推荐

