Python - 打印没有pprint的矩阵

时间:2015-03-21 18:27:27

标签: python arrays matrix

我必须打印一个2d矩阵,使它看起来漂亮整洁,但我不断得到一个奇怪的输出。我没有大声输入任何类似漂亮的印刷品来帮助我。我的代码是这样的:

def pretty_print(M):
    for rows in M:
        print('{:<4}'.format(each) for each in rows)

但是当我输入一个3x3矩阵时,这是我的结果:(由于某种原因,它不会显示,但是它表示生成器对象genexpr在_____,生成器对象和genexpr两侧的符号小于和大于)

它似乎也表明生成器对象是矩阵中有行的次数。

generator object genexpr at 0x03368530
generator object genexpr at 0x03368530
generator object genexpr at 0x03368530

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:3)

print分别打印传递给它的每个参数。你提供了一个生成器参数,因此它将打印<generator object genexpr at 0x03368530>;要从迭代器中打印每个参数,请使用* apply运算符(请注意,我还更改了代码以执行列表推导而不是生成器,因为在这种情况下它会更有效)

def pretty_print(M):
    for rows in M:
        print(*['{:<4}'.format(each) for each in rows])

示例输出:

46   20   18   55  
99   14   76   12  
81   7    48   79  
58   36   74   7