Python中如何将多行字符串组成的自定义对象列表横向并排打印
你现在的问题核心是每个算术题都是独立的多行字符串,直接打印会按整个题块从上到下输出,要实现横向排版需要把所有题的对应行分别拼接后再打印。
实现步骤
- 先把每个算术题的多行字符串按换行符拆分,过滤掉多余的空行,得到每个题的4行有效内容列表
- 按行号遍历(共4行),每次取出所有算术题的当前行,添加统一间距后拼接为一整行
- 逐行打印拼接后的内容
可运行的修改后代码
a = ''' 32 + 698 ----- 730''' b = ''' 38 - 299 ----- -261 ''' c = ''' 45 + 43 ---- 88 ''' arranged_problems = [a, b, c] # 拆分所有题目为单独行,过滤空行 problem_all_lines = [] for problem in arranged_problems: single_problem_lines = [line for line in problem.split('\n') if line.strip() != ''] problem_all_lines.append(single_problem_lines) # 逐行拼接打印 gap = ' ' # 两个算术题之间的间距,可自行调整 for line_index in range(4): # 取出所有题的当前行,用间距拼接 print(gap.join([p[line_index] for p in problem_all_lines]))
进阶优化(对齐更规整)
如果希望所有算术题不管自身宽度多少,都占用统一的宽度,排版更整齐,可以用ljust方法补空格:
fixed_width = 8 # 每个算术题占用的固定宽度 for line_index in range(4): print(''.join([p[line_index].ljust(fixed_width) for p in problem_all_lines]))
内容的提问来源于stack exchange,提问作者YowSnow
相关产品推荐
相关产品推荐

