You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按行打印嵌套列表中的子列表?附示例与待完善代码

解决嵌套列表的转置打印问题

嘿,我来帮你搞定这个打印格式的问题!首先咱们先明确需求:你手里的alist是一个包含4个列表的元组,现在要把它行列转置后打印,还要加上表头,对吧?

先看你现有的代码框架,其实核心问题是循环的对象不对,而且表头得单独处理。咱们一步步来:

第一步:打印表头

首先要输出第一行的list1 list2 list3 list4,得和后面的数据格式对齐,所以用同样的{:>8}格式控制宽度:

print("{:>8} {:>8} {:>8} {:>8}".format("list1", "list2", "list3", "list4"))

第二步:转置原列表

你需要的是把原列表的列变成行,Python里有个超方便的操作——zip(*alist),它会把原列表中每个子列表的对应位置元素打包成元组,正好就是我们要的每一行数据:

  • 原alist的子列表是[1,2,3]、[4,5,6]...
  • zip(*alist)后得到的是(1,4,7,10)、(2,5,8,11)、(3,6,9,12)这三个元组,完美对应三行数据!

第三步:循环打印转置后的行

把原来的循环对象换成转置后的结果,然后用你写的格式化字符串输出每个元素就行:

for row in zip(*alist):
    print("{:>8.2f} {:>8.2f} {:>8.2f} {:>8.2f}".format(*row))

这里的*row是把元组里的元素拆成单独的参数传给format,正好匹配四个占位符。

完整代码

把这些拼起来就是完整的解决方案:

alist = ([1,2,3],[4,5,6],[7,8,9],[10,11,12])
# 打印表头
print("{:>8} {:>8} {:>8} {:>8}".format("list1", "list2", "list3", "list4"))
# 转置并打印数据行
for row in zip(*alist):
    print("{:>8.2f} {:>8.2f} {:>8.2f} {:>8.2f}".format(*row))

运行这段代码就能得到你想要的输出啦:

list1    list2    list3    list4
    1.00     4.00     7.00    10.00
    2.00     5.00     8.00    11.00
    3.00     6.00     9.00    12.00

内容的提问来源于stack exchange,提问作者Chuepapiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:42:20