如何在Python中以垂直格式打印列表的所有元素?
实现嵌套列表的垂直格式化打印
问题场景
给定嵌套列表:
A = [[1, 2, 3, 4, 5, 6, 7, 8, 10], [15, 19, 21, 11, 18]]
使用 print(*A) 会得到一行输出:
[1, 2, 3, 4, 5, 6, 7, 8, 10] [15, 19, 21, 11, 18]
需要将其格式化为指定的垂直缩进样式:
[[1, 2, 3, 4, 5, 6, 7, 8, 10], [15, 19, 21, 11, 18]]
解决方案
以下是适配该格式的通用实现代码:
A = [[1, 2, 3, 4, 5, 6, 7, 8, 10], [15, 19, 21, 11, 18]] # 打印外层列表的起始左括号 print("[", end="") for sub_idx, sublist in enumerate(A): # 根据子列表的位置设置基础缩进 base_indent = " " * sub_idx # 打印子列表的起始部分 print(f"{base_indent}[{sublist[0]},") # 打印子列表的中间元素(带缩进) for num in sublist[1:-1]: print(f"{base_indent} {num},") # 处理子列表的结尾,区分是否为最后一个子列表 if sub_idx == len(A) - 1: print(f"{base_indent} {sublist[-1]}]]") else: print(f"{base_indent} {sublist[-1]}],")
代码说明
- 外层列表起始:先打印
[并保持不换行,确保格式连贯 - 子列表缩进控制:第一个子列表无额外缩进,后续子列表每增加一个就多2个空格,匹配预期格式的层级
- 子列表内部格式化:
- 第一个元素直接紧跟子列表的
[ - 中间元素在基础缩进上再加2个空格,保持垂直对齐
- 最后一个元素处理括号闭合逻辑,最后一个子列表需要同时闭合外层的
]]
- 第一个元素直接紧跟子列表的
内容的提问来源于stack exchange,提问作者RFeynman123
相关产品推荐
相关产品推荐

