【问题标题】:Output Error for Matrix in Python?Python中矩阵的输出错误?
【发布时间】:2017-03-16 00:27:38
【问题描述】:

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

我在代码下方包含了示例。

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']])

输出:

'|一个 | BB |\n| C | DD |\n'

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

|一个 | BB | | C | DD |

【问题讨论】:

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


    【解决方案1】:

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

    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 |
    

    【讨论】:

    • 我将如何划定界限?您的解决方案确实解决了输出问题!
    • 我已经更新了答案,虽然我不确定你想要完成什么我希望这能给你一个大致的想法。
    • 我需要在输出两边放一条线,中间有空格 |一个 | bb |
    • 我收到错误:列表不能被解释为整数。
    • 我收到错误:列表不能解释为整数。每个列表中通常没有多个项目。这是一个包含一个项目的列表列表。例如:show_table([['a'],['b'],['c']])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多