代码改变世界

[Python] Print input and output in table

2019-03-20 04:00  Johnson_强生仔仔  阅读(325)  评论(0编辑  收藏  举报

Print the input and output in a table using prettyTable.

from prettytable import PrettyTable
import collections    

def printTableResult(variables, count):
    inputList = collections.defaultdict(list)
    outputList = collections.defaultdict(list)
    resultTable = PrettyTable()
    
    for variable in variables:
        if variable.type == "input":
            inputList[variable.variable_id] = variable.values
            length = len(variable.values)
        elif variable.type == "output":
            outputList[variable.variable_id] = variable.values

    
    logIdColumn = []
    outputSepColumn = []
    for i in range(count):
        logIdColumn.append(i)
        outputSepColumn.append("")
    resultTable.add_column("Run ID", logIdColumn)


    for each in inputList:
        column = []
        for i in range(count):
            column.append(inputList[each][i].value)
        resultTable.add_column(each,column)
    resultTable.add_column("output", outputSepColumn)
    for each in outputList:
        column = []
        for i in range(count):
            column.append(outputList[each][i].value)
        resultTable.add_column(each, column)
    
    print(resultTable)