美文网首页
python 格式化输出

python 格式化输出

作者: 牛奶大泡芙 | 来源:发表于2020-11-18 17:20 被阅读0次

今天遇到了一个场景:查看一组二维的中间数据,print之后比较乱,如下图所示


原始打印效果.png

这是严格的10×25的数组,其中有一些英文空格,占位不足,所以打算用一个函数去优化他,这里考虑三种情况:
(1)如果数据类型不是List而是Tensor或者Numpy
(2)如果第一维度的list长度不一致
(3)如果输入数据的0,1维度倒置,也就是下面这种情况


数据结构.png
这里用prettytable包来实现了,不得不说确实是比较美观,和一开始的效果差距还是比较大,终端输出如下:
prettytable效果.png

具体的代码如下,调用row_table、column_table就可以看到打印效果,column_table会将0,1维度调换:

import prettytable as pt
import numpy as np
import torch

def row_table(d):
    data = pre_type(d)
    tb = pt.PrettyTable()
    row_len = len(data[0])
    row_num = len(data)
    print(row_len,row_num)
    tb.field_names = list(map(lambda x:str(x), range(0, row_len+1)))
    for i in range(0,row_num):
        row = data[i]
        row.insert(0,str(i))
        tb.add_row(row)
    print(tb)

def column_table(d):
    # 如果1维度是按列(备选组)的,那就转化成按行(一个句子)的,然后再打印
    # 毕竟只是展示,还是打印成一行看着清楚
    # 所有预处理之前都用pre_type先转成二维list的形式,不接受Ternsor,Numpy类型
    data = pre_type(d)
    data = pre_size(data)
    row_table(data)

def pre_size(d):
    data = np.array(d)
    data.transpose()
    return data.tolist()

def pre_type(d):
    data = None
    if isinstance(d,list):
        data = d
    elif type(d) is np.ndarray:
        data = data.tolist()
    elif torch.is_tensor(d):
        data = data.numpy().tolist()
    max_len = max(list(map(lambda x:len(x), data)))
    data=list(map(lambda l:l+[' ']*(max_len-len(l)), data))
    print(data)
    return data

相关文章

  • 实战

    python的格式化输出 #python格式化输出 ##%对于未知变量类型,用这样就不太方便了 name='lis...

  • 入门输入输出篇

    python 的输入和输出 输出 print('hello') 格式化输出: 命令行: >>> 'Hello, %...

  • Python2与Python3中print用法总结

    Python2中的print用法 在Python2 中 print 是一种输出语句 1.格式化输出整数 2.格式化...

  • Python 中的常见 格式化符号

    Python 认识格式化输出 中的 格式化符号 在前面的文章里我们早早就接触过Python中的输出的函数prinn...

  • python—输入与输出

    Python的格式化输出 使用字符串格式化的形式来优化Python的输出,使用%作为占位符。%后面跟的是变量的类型...

  • Python使用format与f-string数字格式化

    Python使用format与f-string数字格式化 输出:

  • python笔记

    Python format格式化输出 浅谈 Python 的 with 语句 Python中迭代原理生成器和迭代原...

  • python-print函数的使用

    1.格式化输出 看看《Python基础编程》中对格式化输出的总结: %字符:标记转换说明符的开始 转换标志:-表示...

  • Python自学笔记Day9

    Python自学笔记——Day9 基本输入输出 1. 输出函数及格式化 Python两种输出值的方式: 表达式语句...

  • Python几种格式化输出

    Python格式化输出 print(userInfo)print(userInfo1)print(userInfo...

网友评论

      本文标题:python 格式化输出

      本文链接:https://www.haomeiwen.com/subject/jlwciktx.html