我必须打印一个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
感谢任何帮助。感谢。
答案 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