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

如何遍历二维列表打印表格?基于Python类get_all方法实现

很简单,我们完全可以借助get_all()的返回值来实现你想要的表格输出,不用直接调用单独的get_a()、get_b()、get_c()方法。下面是具体的实现方式:

首先,先拆解get_all()的返回结构:它返回的是一个包含表头和对应列数据的嵌套列表,格式为[['a', [1,2,3]], ['b', [4,5,6]], ['c', [7,8,9]]]。我们需要先把表头和每一列的数据拆分出来,再将列数据转换为行数据进行打印。

完整实现代码如下:

class example:
    def get_a(self):
        return [1,2,3]
    def get_b(self):
        return [4,5,6]
    def get_c(self):
        return [7,8,9]
    def get_all(self):
        return [['a',self.get_a()],['b',self.get_b()],['c',self.get_c()]]

def example_print():
    x = example()
    all_data = x.get_all()
    
    # 从get_all的结果中拆分表头和列数据
    headers = [item[0] for item in all_data]
    data_columns = [item[1] for item in all_data]
    
    # 打印表头,用空格连接
    print(' '.join(headers))
    # 用zip(*data_columns)把列数据转成行数据,遍历打印每一行
    for row in zip(*data_columns):
        # 将每行元素转为字符串后用空格连接打印
        print(' '.join(map(str, row)))

example_print()

运行这段代码后,会输出你想要的格式:

a b c
1 4 7
2 5 8
3 6 9

关键逻辑说明:

  1. 拆分数据:通过列表推导式分别提取表头(每个子列表的第一个元素)和列数据(每个子列表的第二个元素);
  2. 转置数据:zip(*data_columns)中的*操作符会把三个列数据列表解包成zip的参数,效果等价于你之前写的zip(x.get_a(), x.get_b(), x.get_c()),实现列数据到行数据的转置;
  3. 格式化打印:用' '.join()把表头和每行元素拼接成空格分隔的字符串,保证输出格式统一。

如果是Python 2环境,只需要去掉print语句的括号(比如print ' '.join(headers))即可,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:49:46