如何用Python循环结果打出以下内容

1
1 1
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
……直到中间数为128(此图像为等腰三角形)

for a in range(1,9):
    print(" "*(8-a),end="")
    for m in list(range(1,a+1))+list(range(a-1,0,-1)):
        print(2**(m-1),end=" ")
    print()

是这样的吗??


       1 
      1 2 1
     1 2 4 2 1
    1 2 4 8 4 2 1
   1 2 4 8 16 8 4 2 1
  1 2 4 8 16 32 16 8 4 2 1
 1 2 4 8 16 32 64 32 16 8 4 2 1
1 2 4 8 16 32 64 128 64 32 16 8 4 2 1