将列表打印为表格数据,组行

时间:2018-01-09 09:35:55

标签: python python-2.7

我需要格式化包含表格中列表列表的数据。 我可以使用制表来制作网格:

x = [['Alice', 'min', 2],
     ['', 'max', 5],
     ['Bob', 'min', 8],
     ['', 'max', 15]]
header = ['Name', '', 'value']
print(tabulate.tabulate(x, headers=header, tablefmt="grid"))
+--------+-----+---------+
| Name   |     |   value |
+========+=====+=========+
| Alice  | min |       2 |
+--------+-----+---------+
|        | max |       5 |
+--------+-----+---------+
| Bob    | min |       8 |
+--------+-----+---------+
|        | max |      15 |
+--------+-----+---------+

但是,我们需要对行进行分组,如下所示:

+--------+-----+---------+
| Name   |     |   value |
+========+=====+=========+
| Alice  | min |       2 |
+        +     +         +
|        | max |       5 |
+--------+-----+---------+
| Bob    | min |       8 |
+        +     +         +
|        | max |      15 |
+--------+-----+---------+

我尝试使用多行行(使用"\n".join()),这显然在表格0.8.3中得到支持,但没有成功。

这是在生产服务器中运行所必需的,因此我们不能使用任何重型库。我们使用制表,因为整个制表库是一个单独的文件,我们可以随产品一起发送文件。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

x = [['Alice', 'min\nmax', '2\n5'],
    ['Bob', 'min\nmax', '8\n15'],
    ]
+--------+-----+------------------------+
| Name   |     | ['value1', 'value2']   |
+========+=====+========================+
| Alice  | min | 2                      |
|        | max | 5                      |
+--------+-----+------------------------+
| Bob    | min | 8                      |
|        | max | 15                     |
+--------+-----+------------------------+