Python中Matrix的输出错误?

时间:2017-03-16 00:27:38

标签: function python-3.x join matrix format

我正在尝试创建一个函数,该函数输出一个矩阵,该矩阵包含列表中单独行中的每个项目。我得到的唯一输出是报价('')。我不懂为什么。我想我已正确设置以输出所需内容,但必须缺少某些东西?

我在代码下方添加了示例。

def show_table(table):
 table=[]
 s=[[str(e) for e in row] for row in table]
 lens= [max(map(len, col)) for col in zip(*s)]
 fmt= '\t'.join('{{:{}}}'.format(x) for x in lens)
 table= [fmt.format(*row) for row in s]
 return '\n'.join(table) 

show_table([['A','BB'],['C','DD']])

输出:

' | A | BB | \ n | C | DD | \ n'

打印(show_table([[' A'' BB'],[' C'' DD']])) 输出:

| A | BB | | C | DD |

1 个答案:

答案 0 :(得分:0)

问题出在第二行,您将列表初始化为空列表。而是尝试:

if table is None:
    table = []

或许更好的方法是:

def show_table(table):
    if table is None:
        table = []
    data = ""
    for row in table:
        for val in row:
            data += "| " + val + " "
        data += "|\n"
    return data.strip("\n")

print show_table([['a','bb'],['c','dd']])

输出:

| a | bb |
| c | dd |